Ich möchte auf Variable zugreifen mit String von einer Datei zur anderen Datei.Wie kann man auf eine Variable zugreifen, die einen String aus einem anderen Bereich verwendet?
Hier ist mein Code.
Datei a.py
:
aa = 12
m = test('aa')
Datei class.py
:
class test:
def __init__(self,string):
try:
self.variable = globals()[string]
except KeyError:
print('there is no variable named ' + string)
Above test.py
Code gibt Sequenz string 'gibt es keine Variable mit dem Namen blrblr'. Ich denke, wenn Python lexikalischen Geltungsbereich hat, sollte der Geltungsbereich, wenn test()
Klasse zuerst aufgerufen wird, denselben Bereich mit 'aa'
haben, aber es nicht. Wie kann ich das beheben?
In was 'globals' denken Sie, dass' class.py' suchen wird? Das ist der Grund, warum Sie im Produktionscode niemals Dinge wie 'globals()' (oder 'locals()' usw.) sehen. Sie haben fast sicher ein [XY Problem] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem). – TigerhawkT3
Der lexikalische Bereich von 'class test' ist' class.py', nicht 'a.py', so dass die Variablen in' a.py' nicht angezeigt werden. – tdelaney
Off-topic: Man würde wahrscheinlich nie ein Modul zum Importieren "class.py" nennen wollen, da man "import class" nicht ausführen kann, da "class" ein Python-Schlüsselwort ist. – martineau