6
Giả sử tôi có chương trình sau đây:Có __ne__ sử dụng một __eq__ ghi đè không?
class A(object):
def __eq__(self, other):
return True
a0 = A()
a1 = A()
print a0 != a1
Nếu bạn chạy nó với Python đầu ra là True
. Câu hỏi của tôi là
- phương thức
__ne__
không được triển khai, Python có rơi vào chế độ mặc định không? - nếu Python rơi vào phương pháp mặc định để xác định xem hai đối tượng có bằng nhau hay không, không nên gọi
__eq__
và sau đó phủ nhận kết quả?
Vì vậy, nếu '' __ne__'' không được triển khai, không nên Python ném ngoại lệ nếu tôi sử dụng ''! = '' Để so sánh hai đối tượng? – dorafmon
@dorafmon: không, bởi vì việc thực hiện mặc định không tham khảo '__eq__', nó chỉ đơn giản trả về' tự không phải là khác'. –