Вопрос: «Делать == значения разных типов r и я даю разные возвращаемые значения r и i?»
Ответ: очевидно, что они разные;они имеют разные типы.
>>> print(type(i))
<type 'int'>
>>> print(type(n))
<class '__main__.Numeric'>
В приведенном выше примере я объявил класс с именем Numeric
, чтобы что-то проверить.Если у вас действительно есть модуль, который реализует класс с именем Numeric, он не скажет __main__.Numeric
, а что-то еще.
Если класс реализует функцию метода __eq__()
, то результаты ==
будутзависит от того, что делает эта функция.
class AlwaysEqual(object):
def __init__(self, x):
self.x = x
def __eq__(self, other):
return True
С учетом вышеизложенного мы можем теперь сделать:
>>> x = AlwaysEqual(42)
>>> print(x == 6*9)
True
>>> print(x == "The answer to life, the universe, and everything")
True