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

Samstag 1. März 2008, 00:22

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

Samstag 1. März 2008, 01:10

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
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Samstag 1. März 2008, 11:55

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 Modvoice
Antworten