Vinculando um valor de objetos dentro de uma função (encerramento)
Em SML (uma linguagem de programação funcional que aprendi antes do Python), posso fazer o seguinte:
val x = 3;
fun f() = x;
f();
>>> 3
val x = 7;
f();
>>> 3
Em Python, no entanto, a primeira chamada dará 3 e a segunda dará 7.
x = 3
def f(): return x
f()
>>> 3
x = 7
f()
>>> 7
Como vinculo o valor de uma variável a uma função no Python?