5
Arbeits
class Foo(object):
def __init__(self, x):
self.bar(x=x)
def bar(self, **kwargs):
print kwargs
locals().update(kwargs)
print x
f = Foo(12)
dies scheint offensichtlich, aber es funktioniert nicht, der erste Druck würde Ausgabe {'x': 12}
, was richtig ist, aber dann bekomme ich diesen Fehler: NameError: global name 'x' is not defined
Einheimischen() Update (kwargs) nicht
Warum würde das passieren? Vielen Dank.
Haben Sie die [Docs on 'localhips()'] (http://docs.python.org/2/library/functions.html#locals) überprüft: Hinweis Der Inhalt dieses Wörterbuchs sollte nicht geändert werden; Änderungen dürfen die Werte der vom Interpreter verwendeten lokalen und freien Variablen nicht beeinflussen. –
Python hat ** nicht ** eine * zuverlässige * Möglichkeit zur Erstellung von Locals zur Laufzeit. Selbst 'exec' funktioniert nicht in vielen Python-Versionen (z. B. python3 +, wobei' eval' eine Funktion ist). – Bakuriu
@AshwiniChaudhary danke! #TIL – wong2