Function objects
The difference between x = foo y = foo()
examples/advanced/function-objects.py
c = 0 def foo(): global c c += 1 return c print(foo()) # 1 print(foo()) # 2 x = foo # assigning the function object y = foo() # assigning the return value of the function print(foo()) # 4 print(x()) # 5 print(y) # 3