fork download
  1. def foo(x):
  2. a = x
  3. def bar():
  4. nonlocal a
  5. a += 1
  6. print(a)
  7. return bar
  8.  
  9. f = foo(3)
  10. try:
  11. f()
  12. except:
  13. print("Crap, integers in closures aren't assignable, since they're value types.")
  14.  
  15. def foo2(x):
  16. a = [x]
  17. def bar():
  18. a[0] += 1
  19. print(a[0])
  20. return bar
  21.  
  22. f2 = foo2(3)
  23. f2()
  24. f2()
Success #stdin #stdout 0.02s 9936KB
stdin
Standard input is empty
stdout
4
4
5