Reo*_*orx 11 python interpreter python-2.7 python-3.x
在Python 2.7.9中,当我将未绑定方法分配给新属性并按is语句进行比较时,结果为False:
In [1]: class A(object):
...: def a(self):
...: pass
...:
In [2]: A._a = A.a
In [3]: print A.a, A._a
<unbound method A.a> <unbound method A.a>
In [4]: print id(A.a), id(A._a)
4499595904 4499595904
In [5]: A.a is A._a
Out[5]: False
Run Code Online (Sandbox Code Playgroud)
这是非常反直觉的,我找不到任何参考或文档来解释这种行为.更重要的是,当我在Python 3.4.2中测试相同的代码时,结果变成了True.我猜这是Python 2.7中的一个错误,但在Python 3中得到修复,任何人都可以帮我找到发生这种情况的真正原因吗?
| 归档时间: |
|
| 查看次数: |
63 次 |
| 最近记录: |