Н.Б .: статические методы не похожи на методы класса!
on документация о операторis
говорит:Операторы
а такжеis
тест на идентичность объекта:is not
верно тогда и только тогда, когдаx is y
а такжеx
это один и тот же объект.y
дает обратное значение истины.x is not y
Давайте попробуем это:
>>> def m():
... pass
...
>>> m is m
True
Документация Python также говоритИз-за автоматической сборки мусора, свободных списков и динамической природы дескрипторов вы можете заметить необычное поведение в некоторых случаях:
оператор, как те, которые включают сравнения между методами экземпляра, или константы. Проверьте их документацию для получения дополнительной информации.is
Я искал больше объяснений, но не смог найти ни одного.
>>> class C:
... def m():
... pass
...
>>> C.m is C.m
False
Почему
ложный?C.m is C.m
Я использую Python 2.x. Как отмечено в ответах ниже, в Python 3.x
правда.C.m is C.m
Когда вы запрашиваете атрибут экземпляра, который является функцией, вы получаете