Tôi đã cố gắng ghi đè __and__
, nhưng đó là dành cho nhà điều hành &, không phải và - thứ tôi muốn. Tôi có thể ghi đè và không?Bất kỳ cách nào để ghi đè lên toán tử trong Python?
Trả lời
Bạn không thể ghi đè các toán tử and
, or
và not
boolean.
Không thực sự. Không có tên phương thức đặc biệt nào cho các toán tử logic ngắn mạch.
Không, bạn không thể ghi đè and
và or
. Với hành vi mà chúng có trong Python (tức là ngắn mạch) chúng giống như các công cụ kiểm soát dòng chảy hơn so với các toán tử và ghi đè chúng sẽ giống như ghi đè if
hơn + hoặc -.
Bạn thể ảnh hưởng đến giá trị chân lý của các đối tượng của bạn (ví dụ: cho dù họ đánh giá là đúng hay sai) bằng cách ghi đè __nonzero__
(hoặc __bool__
bằng Python 3).
Luồng điều khiển (đánh giá lười biếng phía bên phải) ngữ nghĩa vẫn có thể được duy trì bằng cách quá tải là toán tử nhị phân khi bên phải được truyền như một giá trị gọi thay vì giá trị. – DRayX
- 1. Ghi đè toán tử 'boolean' trong python?
- 2. Toán tử ghi đè == trong Ruby
- 3. Làm thế nào để bạn ghi đè lên toán tử bình đẳng trường hợp ruby? (===)
- 4. Có thể ghi đè lên "Roboto" Font bằng bất kỳ webfont nào khác không?
- 5. câu hỏi về toán tử + ghi đè trong ruby
- 6. Có thể ghi đè các toán tử trong Java không?
- 7. Có cách nào để ghi đè toán tử << trong Ruby không?
- 8. Làm cách nào để ghi đè toán tử == cho Giao diện trong C#?
- 9. Làm thế nào để ghi đè lên stdout trong C
- 10. Ghi đè lên phong bì xà phòng trong Suds python
- 11. Làm cách nào để ghi đè lên td align = "center"?
- 12. Làm cách nào để ghi đè lên DisplayFor boolean?
- 13. Magento howto fetch/change/ghi đè lên tính toán totals.phtml?
- 14. python ghi đè dòng trước
- 15. Làm thế nào để ghi đè lên WebServiceHostFactory MaxReceivedMessageSize?
- 16. Symfony2: cách ghi đè lên mẫu lõi?
- 17. Có thể ghi đè toán tử hợp nhất không?
- 18. Có bất kỳ giới hạn nào về các loại trong toán tử định kiểu không?
- 19. Làm cách nào để ghi đè nhập bằng Python?
- 20. PrimeFaces: cách ghi đè lên lớp CSS
- 21. Làm cách nào để ghi đè ngắt bàn phím? (Python)
- 22. Python thay thế và ghi đè lên thay vì phụ
- 23. Liệu một đối tượng Python không ghi đè các toán tử so sánh bằng chính nó?
- 24. Làm cách nào để ghi đè xóa trong C++?
- 25. Ghi đè lên Jquery Mobile CSS
- 26. Làm thế nào để ghi đè lên ObjectOutputStream.writeStreamHeader()?
- 27. Ghi đè lên Setter trong Phân lớp
- 28. Làm thế nào để ghi đè lên dpkg-buildflags CFLAGS?
- 29. clojure - cách chính xác để ghi đè cục bộ các toán tử như "+", "*", v.v.
- 30. Làm cách nào để ghi đè lên một tệp trong MongoDB Gridfs?
Đáng chú ý, [PEP335] (https://www.python.org/dev/peps/pep-0335/) đưa ra đề xuất và cuối cùng đã bị từ chối. – jpmc26