после того, как я прочитал книгу «Свободный питон», я понимаю, как оператор ==
работает с объектами python, используя метод __eq__()
. Но как это работает с int
экземплярами в python2?Как объект int() использует оператор "==" без метода __eq __() в python2?
>>> a = 1
>>> b = 1
>>> a == b
True
>>> a.__eq__(b)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'int' object has no attribute '__eq__'
в Python3 все a.__eq__(b)
возвращает True
http://stackoverflow.com/questions/3588776/how-is-eq-handled-in-python-and-in- что-то посмотреть на несколько ответов здесь, я думаю, что они хорошо объясняют это. – sjr59
Дикая догадка, но 'from operator import eq; eq (2,2) 'работает в Python2. Либо это, либо используя '__cmp__' –
' a .__ cmp__' существует, что может быть тем, что использует Python 2. – Blender