Что происходит с переменными, назначенными в первый раз (определены) внутри оператора if
или for
, если прошло много времени с момента запуска их кода. Есть ли какая-то сборка мусора, которая может привести к исключению переменной переменной. Например:Переменные, определенные внутри операторов if или for
if True:
a=1
else:
a=3
# long time passed and other codes run
# .
# .
# .
print (a)
В моем коде обнаружена ошибка, которая, как я подозреваю, является причиной. Документировано ли это где-то в официальной документации Python?
Если ваши переменные не выходят за пределы области видимости, не следует собирать мусор. То, как работает счетчик ссылок (способ сбора мусора Python). –
переменные остаются, пока область действия существует, если только они не удалены 'del a'. – Daniel
Почему вы подозреваете, что это причина? Код, который вы публикуете, не приближается к воспроизведению вашей предполагаемой ошибки. – chepner