У меня есть скрипт, который создает кучу потоков, запускает программу для использования потоков для запуска задач из очереди и возвращает что-то из каждого потока. Я хочу подсчитать, сколько из них возвращено успешно, поэтому я устанавливаю переменную «successful=0» и увеличиваю ее каждый раз, когда очередь сообщает об успешном завершении задачи.
Тем не менее, я получаю "UnboundLocalError :локальная переменная "успешно" ссылается перед назначением"
Что происходит?
Вот пример кода:
successful = 0
q = Queue(200)
for i in range(100):
t=Thread(target=foo)
t.daemon=True
t.start()
def foo():
while True:
task=q.get()
#do some work
print task
successful+=1 # triggers an error
q.task_done()
for i in range(100):
q.put("Foo")
q.join()
print successful