Python - Warum ist diese Klasse variable nicht definiert in der Methode?

Habe ich ein python-Anwendung, die ist wie folgt:

global_counter = 0
connections = {}

class SocketHandler():
    currentid = 0
    def open(self):
        global global_counter
        global connections
        currentid = global_counter
        global_counter += 1
        connections[currentid] = self
        print "WebSocket " + str(currentid) + " opened"

    def on_close(self):
        global connections
        print "WebSocket " + str(currentid) + " closed"
        del connections[currentid]

Ich bin immer der Fehler:

NameError: global name 'currentid' is not defined

auf den Linien von "öffnen" und "on_close", wo ich den Druck, den ich öffnen/schließen der Verbindung. Ich definierte es in der Klasse, warum ist es nicht in den Anwendungsbereich. Auch habe ich gelesen, dass die Verwendung von globalen Variablen ist schlecht, aber ich sehe nicht, einen Weg, um dieses. Kann mir jemand erklären, was ich tun soll? Danke.

Verwenden Sie selbst.currentid

InformationsquelleAutor Lylax | 2012-10-08

Schreibe einen Kommentar