【发布时间】:2013-04-05 08:40:29
【问题描述】:
我有一个错误,我在使用 is 时依赖于彼此相等的方法。事实证明并非如此:
>>> class What:
... def meth(self):
... pass
>>> What.meth is What.meth
True
>>> inst = What()
>>> inst.meth is inst.meth
False
为什么会这样?它适用于常规功能:
>>> def func(): pass
>>> func is func
True
【问题讨论】:
-
这适用于 Python 3 顺便说一句。
-
@poke no,
What.meth is What.meth有效(返回True)但inst = What(); inst.meth is inst.meth在 Python 3.8.0 上返回 False
标签: python methods identity equality