Глобальная переменная возвращается к значению по умолчанию [дубликат]Python

Программы на Python
Ответить
Anonymous
 Глобальная переменная возвращается к значению по умолчанию [дубликат]

Сообщение Anonymous »

У меня пропущена глобальная переменная, которая увеличивается внутри функции (да, я использую ключевое слово global). Я вижу, как значение увеличивается на выходе от начального 3 до 157. Но когда управление возвращается на верхний уровень, значение печатается как 3.
lock = threading.Lock()
skipped = 3

def process(info):
global skipped

...
with lock:
skipped += 1
print(skipped) # outputs 4, 5, ..., 157

...
with Pool(1) as pool:
pool.map(process, infos)
with lock:
print(skipped) # still outputs 3


Подробнее здесь: https://stackoverflow.com/questions/791 ... ault-value
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»