Powiązanie wartości obiektów w ramach funkcji (zamknięcie)

W SML (funkcjonalnym języku programowania, którego nauczyłem się przed Pythonem) mogę wykonać następujące czynności:

val x = 3;
fun f() = x;
f();
>>> 3
val x = 7;
f();
>>> 3

Jednak w Pythonie pierwsze wywołanie da 3, a drugie 7.

x = 3
def f(): return x
f()
>>> 3
x = 7
f()
>>> 7

Jak powiązać wartość zmiennej z funkcją w Pythonie?

questionAnswers(4)

yourAnswerToTheQuestion