50
я бегу следующее интерпретатором Python:двойные равно против питона в
>>> foo = 10
>>> dir(foo) == dir(10)
True
>>> dir(foo) is dir(10)
False
>>>
Почему это?
я бегу следующее интерпретатором Python:двойные равно против питона в
>>> foo = 10
>>> dir(foo) == dir(10)
True
>>> dir(foo) is dir(10)
False
>>>
Почему это?
is
проверяет, что 2 аргумента ссылаются на один и тот же объект, ==
проверяет, что 2 аргумента имеют одинаковое значение. dir()
возвращает list
, который содержит те же данные как для foo
, так и для 10
, но фактические list
экземпляры для 2 вещей разные.
интересный материал :) – ben
Хороший пример 1 == True возвращает True, но 1 True возвращает False. – Andrew
Еще более актуальным является то, что 'dir (10) является dir (10)' даже не будет 'True' (запрет какой-либо оптимизации интерпретатора), тогда как' dir (1) == dir (10) ' будет «True». –