次のようなPythonアプリケーションがあります。
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]
エラーが発生します:
NameError: global name 'currentid' is not defined
「open」と「on_close」の行で、接続を開いている/閉じていることを出力します。クラスで定義しましたが、なぜスコープ外なのですか。また、グローバル変数を使用するのは悪いことだと読みましたが、これを回避する方法がわかりません。誰かが私が何をすべきかを指摘できますか? ありがとう。