2016-03-31 8 views
-5

So in meiner Methoden unter einer Klasse habe ich ein Wörterbuch mit vielen Schlüsseln und seinem Inhalt erstellt. Ich möchte es in einer anderen Funktion verwenden, und ich frage mich, ob Wörterbücher, die in einer Methode erstellt werden, global sind und in einem anderen Wörterbuch verwendet werden können.Python: Sind Wörterbücher in Methoden global deklariert?

Wenn es nicht global ist, würde ich auch gerne wissen, ob es einen Weg gibt, sie global zu machen.

+1

globale Variablen sind fast nie die Antwort. –

+0

Ist die andere Funktion ebenfalls Teil derselben Klasse? Sie können Dinge global machen, aber es ist fast nie das, was Sie tun möchten. – tzaman

+0

Sprechen Sie über ein Wörterbuch für ein Klassenmitglied? Ein Modulebene-Wörterbuch? – Ben

Antwort

1

Standardmäßig sind Wörterbücher (oder Variablen), die in Methoden deklariert sind, nicht global. Sie sind im Rahmen der Methode enthalten.

Ich schrieb ein Testskript, das es beweist. global_test.py:

def test(): 
    myDict = { 
     "key1" : "value1" 
    } 
    print "Inside method " + myDict["key1"] 
test() 
#Try calling dictionary created in test() method: 
print "Outside method" + myDict["key1"] 

Running script:> Python global_test.py

Inside method value1 
Traceback (most recent call last): 
    File "global_test.py", line 11, in <module> 
     print "Outside method" + myDict["key1"] 
NameError: name 'myDict' is not defined 

Wie andere ausgewichen haben, sind globale Variablen so gut wie nie der richtige Weg, um ein Problem zu lösen.

Verwandte Themen