2017-01-17 1 views
-1

Ich habe ein Problem, ich kämpfe um zu beheben. Ich muss eine Eingabe machen, die es dem Benutzer erlaubt, eine Variable zu benennen, aber wie würde ich dann diese Variable verwenden?Wie wähle ich eine Variable mit ihrem Namen mit 'exec'

Um es muss ich nur tun:

a = input('var name?') 
exec(a) 

Also, wenn der Benutzer ‚Hund‘ eingibt, der eine Variable dog genannt wird, aber wie kann ich dann diese Variable verwenden? Ich habe seinen Namen nicht, also ist es überhaupt möglich?

Zusätzlich, wie mache ich es eine globale Variable, wenn es in einer Funktion ist? Tut mir leid wegen meiner schlechten Grammatik und Englisch. Ich bin mir nicht sicher, was ich versuchen soll.

+1

Das klingt nach einer sehr schlechten Idee. –

+1

Was ist, wenn ich möchte, dass meine Variable "shutil importieren" ist? shutil.rmtree ('/') '? – Tagc

+0

Was hat 'exec' mit der Erstellung der Variable zu tun? – Goyo

Antwort

0

So können Sie dies tun, aber ich bin mir nicht sicher, warum Sie würden. Was auch immer Sie tun, verwenden Sie nichtexec aus den Gründen von Tagc in den Kommentaren gebracht.

>>> a = input('var name? ') 
var name? dog 
>>> globals()[a] = 'hi everyone' 
>>> dog 
'hi everyone' 

Und Sie tun den Namen haben, ist es in a, und Sie darauf zugreifen können in globals():

>>> globals()[a] 
'hi everyone' 
>>> 

Aber das bringt nur den Punkt nach Hause: warum nicht einfach eine dict anstelle der globals()dict?

+0

Ich versuchte dict, aber es verursachte Probleme mit einigen der Module, die ich benutzte, danke dafür, es war sehr hilfreich. – 1234USSR4321

Verwandte Themen