Comparison of functions

tiissa tiissa at nonfree.fr
Sat Jul 30 08:20:50 EDT 2005


Steven D'Aprano wrote:
> Playing around with comparisons of functions (don't ask), I discovered an
> interesting bit of unintuitive behaviour:
> 
>>>>a = lambda y: y
>>>>b = lambda y: y
>>>>a
> <function <lambda> at 0xf70598ec>
>>>>b
> <function <lambda> at 0xf7059844>
>>>>a < b
> False
> 
> So I'm puzzled about how Python compares the two.

Seems to me the object addresses are compared in this case. But I'm too 
lazy to check it in the source. ;)

However, the doc [1] warns you about such comparisons:
"""Most other types compare unequal unless they are the same object; the 
choice whether one object is considered smaller or larger than another 
one is made arbitrarily but consistently within one execution of a 
program."""


[1] http://docs.python.org/ref/comparisons.html



More information about the Python-list mailing list