I just came across http://www.perl.com/pub/a/2002/05/29/closure.html and wanted to try the "canonical example of closures" in Python. I came up with the following, but it fails:
####################### #!/usr/bin/env python def make_counter(start_num): start = start_num def counter(): start += 1 return counter from_ten = make_counter(10) from_three = make_counter(3) print from_ten() # 10 print from_ten() # 11 print from_three() # 3 print from_ten() # 12 print from_three() # 4 #################### The error message is: "UnboundLocalError: local variable 'start' referenced before assignment". The same thing happens if I omit start and just use start_num directly. How can I do it in Python? -- http://mail.python.org/mailman/listinfo/python-list