LC exportiert Laufvariable?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Gnushi
User
Beiträge: 77
Registriert: Dienstag 12. Dezember 2006, 09:49

Hallo zusammen!

Folgendes Programm funktioniert merkwürdigerweise:

Code: Alles auswählen

def f(l):
    new_l = [i for i in l if i % 2 == 0]
    print i

f(range(10))
Ist es gewollt, dass eine Laufvariable aus einer List Comprehension exportiert wird?

GnuShi
BlackJack

Ja und nein. Es ist kein Bug, also schon irgendwie gewollt, aber in Python 3.0 wird dieses Leck verschwinden. Generator-Ausdrücke lecken nicht.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Mir ist es auch schon öfter passiert, das die Variablen aus den LCs heraus-leaken was ich in der Regel nicht besonders toll fand, weil es mir irgendwas kaputt gemacht hat. Schön, dass sich das in Python 3.0 ändert.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Antworten