In Python textbooks that I have read, it is usually not mentioned that we can very easily program Common LISP-style closures with Python. It is done as follows:
------------------------------------- # Make a Common LISP-like closure with Python. # # Antti J Ylikoski 02-03-2012. def f1(): n = 0 def f2(): nonlocal n n += 1 return n return f2 ------------------------------------- and now we can do: ------------------------------------- >>> >>> a=f1() >>> b=f1() >>> a() 1 >>> a() 2 >>> a() 3 >>> a() 4 >>> b() 1 >>> b() 2 >>> a() 5 >>> b() 3 >>> b() 4 >>> ------------------------------------- i. e. we can have several functions with private local states which are kept between function calls, in other words we can have Common LISP-like closures. yours, Antti J Ylikoski Helsinki, Finland, the EU -- http://mail.python.org/mailman/listinfo/python-list