[Python-de] locals()

Alexander 'boesi' Bösecke boesi.josi at gmx.net
Mit Aug 25 11:23:41 CEST 2004


Hi

Am 25.08.2004 10:49:57 schrieb Uwe Schmitt:

> Hi,  folgende Funktion macht nicht das, was ich eigentlich gerne hätte:

> "print x" allerdings liefert eine Fehlermeldung
>     "NameError: global name 'x' is not defined"

Der globale Name x existiert ja auch nicht, x ist lokal.

Wenn du in einer Funktion nur lesend auf eine Variable zugreifst, nimmt
Python an, dass x global ist. Nur wenn du in der Funktion in die
Variable schreibst, nimmt Python an, dass sie lokal ist. Wenn die
Variable auch bei schreibenden Zugriff global sein soll, muss am Anfang
der Funktion "global x" stehen.
Scheinbar interpretiert Python locals()['x']=42 nicht als schreibenden
Zugriff.

Was hat das ganze eigentlich fuern Sinn?

cu boesi
-- 
                                                     #1671 : icq-intern
Frueher hattet ihr die Freiheit zu entscheiden   #73628288 : icq-extern 
Heute seid ihr von dieser Entscheidung befreit    boesi111 : aim
                       .-==Report der Magd==-.        i171 : reallife