globale Variable innerhalb der Hauptfunktion python

8

Ich wollte eine globale Variable in main definieren, d. h. eine Variable, die von jeder Funktion verwendet werden kann, die ich von der Hauptfunktion aus aufrufen kann.

Ist das möglich? Was wäre ein guter Weg, dies zu tun?

Danke!

    
Dnaiel 11.05.2013, 22:37
quelle

3 Antworten

2

Eine Variable, die innerhalb einer Methode (z. B. main) erstellt wurde, ist per Definition lokal. Sie können jedoch eine globale Variable außerhalb der Methode erstellen und von einer anderen Methode aus auf den Wert zugreifen und ihn ändern.

Um seinen Wert zu ändern, verwenden Sie das Schlüsselwort global .

    
Levon 11.05.2013, 22:39
quelle
9

Was Sie wollen, ist nicht möglich *. Sie können einfach eine Variable im globalen Namespace erstellen:

%Vor%

Tue dies NICHT.

Der springende Punkt einer Funktion ist, dass sie Parameter benötigt. Fügen Sie einfach Parameter zu Ihren Funktionen hinzu. Wenn Sie feststellen, dass Sie viele Funktionen ändern müssen, ist dies ein Hinweis darauf, dass Sie sie in einer Klasse sammeln sollten.

* Um zu erklären, warum das nicht möglich ist: Variablen in Python werden nicht deklariert - sie werden erzeugt, wenn eine Zuweisungsanweisung ausgeführt wird. Dies bedeutet, dass der folgende Code (abgeleitet von Code, der von astronautlevel gepostet wird) bricht:

%Vor%

Dies passiert, weil, wenn caketaste aufgerufen wird, keine Zuweisung zu cake stattgefunden hat. Es wird nur auftreten, nachdem setcake aufgerufen wurde.

Sie können den Fehler hier sehen: Ссылка

    
Marcin 11.05.2013 22:44
quelle
1

Sie müssen global -Anweisungen verwenden. Diese sind relativ einfach. Definieren Sie dazu einfach eine Variable als global, bevor Sie die Variable selbst definieren. Zum Beispiel:

%Vor%

BEARBEITEN: Entschuldigung, es scheint, dass ich deine Frage falsch gelesen habe. Erlaube mir, es jetzt richtig zu beantworten.

%Vor%

Die Ausgabe, wie im Code zu sehen: Ссылка

    
astronautlevel 11.05.2013 22:56
quelle

Tags und Links