2009-01-23 23 views

Trả lời

19

Bạn không thể ghi đè các toán tử and, ornot boolean.

+3

Đá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

1

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.

31

Không, bạn không thể ghi đè andor. 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).

+0

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

Các vấn đề liên quan