Externe Variablen in Lambda-Funktionen in Python

9

Inspiriert durch die Konstruktion in dieser Antwort versuche ich Folgendes:

%Vor%

aber ich bekomme global name 'values' is not defined .

Ich bekomme den gleichen Fehler, wenn ich die Lösung, mit der ich oben verlinkt habe, versuche, d. h .:

%Vor%

Hat sich Python geändert, seit diese Lösung veröffentlicht wurde? (Ich arbeite mit 2.7.4 ). Wenn ja, wie kann ich auf eine externe Variable innerhalb einer Lambda-Funktion zugreifen? Sollte ich es als global erklären? übergeben Sie es als weitere Eingabe?

Update 1:

Ich merke dieses Problem nur innerhalb einer eingebetteten Shell in IPython (1.0).

Update 2:

Es gibt ein IPython Ticket zu GitHub zum Thema, aber es ist unklar, ob das Problem gelöst wurde.

Update 3 (nicht vom OP):

Der Fehler ist in der Shell von django reproduzierbar (Danke @Ashwini)

%Vor%     
Amelio Vazquez-Reina 10.08.2013, 02:47
quelle

1 Antwort

1

Ich weiß, dass der Code in Ihrem Beispiel und im Fehlerbericht in der interaktiven Shell des Pyramiden-Frameworks (pshell, mit ipython 0.12!) erfolgreich funktioniert, obwohl ich mich erinnere, dass ich dieses Problem schon früher hatte. Der Schlüssel ist, dass mit ipython & gt; = 0.11 ein anderer Code verwendet wird. Soweit ich weiß, würde der 0.10 Code immer noch diesen Fehler haben.

Dies ist ein vereinfachter Auszug aus der Pyramide pshell.py

%Vor%     
Antti Haapala 13.08.2013 05:17
quelle

Tags und Links