Funktionen in einer Schleife erstellen
Ich versuche, Funktionen innerhalb einer Schleife zu erstellen:
functions = []
for i in range(3):
def f():
return i
functions.append(f)
Das Problem ist, dass am Ende alle Funktionen gleich sind. Anstatt 0, 1 und 2 zurückzugeben, geben alle drei Funktionen 2 zurück:
print([f() for f in functions])
# expected output: [0, 1, 2]
# actual output: [2, 2, 2]
Warum geschieht dies, und was kann ich tun, um drei verschiedene Funktionen zu erhalten, die jeweils 0, 1 und 2 ausgeben?