def foo(x):
a = x
def bar():
a += 1
print a
return bar
f = foo(3)
try:
f()
except:
print "Crap, integers in closures aren't assignable, since they're value types."
def foo2(x):
a = [x]
def bar():
a[0] += 1
print a[0]
return bar
f2 = foo2(3)
f2()
f2()
ZGVmIGZvbyh4KToKCWEgPSB4CglkZWYgYmFyKCk6CgkJYSArPSAxCgkJcHJpbnQgYQoJcmV0dXJuIGJhcgoJCmYgPSBmb28oMykKdHJ5OgoJZigpCmV4Y2VwdDoKCXByaW50ICJDcmFwLCBpbnRlZ2VycyBpbiBjbG9zdXJlcyBhcmVuJ3QgYXNzaWduYWJsZSwgc2luY2UgdGhleSdyZSB2YWx1ZSB0eXBlcy4iCgkKZGVmIGZvbzIoeCk6CglhID0gW3hdCglkZWYgYmFyKCk6CgkJYVswXSArPSAxCgkJcHJpbnQgYVswXQoJcmV0dXJuIGJhcgoJCmYyID0gZm9vMigzKQpmMigpCmYyKCk=