2017-07-12 3 views
0

Ich versuche, globale Variablen zu verwenden, um sie am Anfang meines Codes zu deklarieren, genau wie in C#, aber wenn ich sie in einer Funktion bearbeite und versuche, sie in einer anderen Funktion aufzurufen, wird die Variable angezeigt wird nicht erklärt? DieseMache ich einen Fehler mit globalen Variablen wie diesem?

ist, wo ich die Variablen deklarieren:

from tkinter import * 
import os 

global Name 
global Wmain 
global directory 

global Username 
global Password 
global Code 

Dies ist, wo ich die das Verzeichnis Variablen ändern:

def NameGet(): 
    Name = NameEntry.get() 
    directory = ('C:\\Users\\Bradley\\Desktop\\Log In system\\Members\\' + Name + '.txt') 
    CheckFile(Name) 

Dies ist, wo ich die Störung erhalte:

def SignUpFinished(): 
    with open(directory, W) as F: 
     F.write(Username) 
     F.write(Password) 
     F.write(Code) 
     F.close() 

Jetzt fühle ich, dass ich entweder einen wirklich Anfängerfehler mache oder etwas nicht richtig mit meinem Code funktioniert. irgendwelche Ideen?

+0

Was auch immer Variablen, die Sie in einer Funktion verwenden möchten, müssen Sie 'global var' am Anfang hinzuzufügen (wobei var die var Sie ändern möchten). Anstatt so viele globale Variablen zu verwenden, würde ich empfehlen, eine Klasse zu verwenden, um verschiedene Methoden in Bezug auf dieselbe Aufgabe zu verwalten. – SneakyTurtle

+0

In Ihrem Beispiel scheint es, dass Ihre Globalen Konstanten sind. Wenn das der Fall ist, ist es wahrscheinlich am besten, sie in ihre eigene Datei zu stecken und sie dann zu importieren. Wenn Sie die Werte ändern müssen, möchten Sie diese wahrscheinlich in eine Singleton-Klasse einbetten. – Dan

+0

Wenn ich versuche, global in Front zu setzen, weil ich es in einer Anweisung verwende, nehme ich an, dass es einen Fehler wirft, würde jemand in der Lage sein, mir eine grundlegende Klasse zu zeigen, die ich für die Struktur verwenden konnte, wie ich nie in Klassen getaucht habe –

Antwort

0

Um globale Variable zu verwenden, müssen Sie sie explizit in einer Methode festlegen.

Zum Beispiel:

a=4 
def func(): 
    global a 
    print(a) 

func() 
Verwandte Themen