How come this doesn't rise Attribute error? function object doesn't have any of the comparison methods. Does it use id() somehow?
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
I understand that it compares addresses, but how? Is it some low level hack in to intercept __lt__, __eq__ etc. ?