为什么不上升属性错误?函数对象没有任何比较方法.它以某种方式使用id()吗?
fun1 = lambda:x
fun2 = lambda:x
print fun1 == fun1 # True
print fun1 == fun2 # False
print fun1 > fun2 # True
print fun1 < fun2 # False
print fun1 > 1 # True
Run Code Online (Sandbox Code Playgroud)
我知道它比较了地址,但是怎么样?拦截__lt __,__ eq__等是否是一些低级别的黑客攻击?
我有一个错误,我在使用时依赖于彼此相等的方法is.事实证明并非如此:
>>> class What(object):
def meth(self):
pass
>>> What.meth is What.meth
False
>>> inst = What()
>>> inst.meth is inst.meth
False
Run Code Online (Sandbox Code Playgroud)
为什么会这样?它适用于常规功能:
>>> def func():
pass
>>> func is func
True
Run Code Online (Sandbox Code Playgroud)