Python - Pourquoi est-ce une variable de classe ne sont pas définis dans la méthode?

J'ai une application en python qui est comme suit:

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]

J'obtiens le message d'erreur:

NameError: global name 'currentid' is not defined

sur les lignes de "ouvert" et "on_close" où j'ai l'impression que je suis de l'ouverture/fermeture de la connexion. J'ai défini dans la classe, pourquoi n'est-il pas dans le champ d'application. Aussi, j'ai lu que l'utilisation de variables globales est mauvais, mais je ne vois pas un moyen de contourner cela. Quelqu'un peut-il préciser ce que je dois faire? Merci.

Utilisation de l'auto.currentid

OriginalL'auteur Lylax | 2012-10-08