Pythonキューページの下部からキューの例に従いました。ワーカー関数内のいくつかのグローバル変数にアクセスしたいのですが、アクセスできるグローバル変数とアクセスできないグローバル変数があります。以下の簡単な例では、「rows」変数と「errors」変数にアクセスできますが、カウントに対してUnboundLocalErrorが発生します。「グローバルカウント」を入れると動作します。しかし、なぜ他のグローバルにアクセスできるのかわかりません。
File "myfile.py", line 184, in dpn_worker
count += 1
UnboundLocalError: local variable 'count' referenced before assignment
これが私が使用したコード例です:
dpns = [1,2,3,4]
q = Queue.Queue()
rows = []
errors = []
count = 0
def dpn_worker():
while True:
item = q.get()
rows.append(1)
errors.append(1)
count += 1
q.task_done()
def main():
for d in dpns:
q.put(d)
for i in range(NUM_WORKERS):
t = threading.Thread(target=dpn_worker)
t.daemon = True
t.start()
q.join()