«...после выхода из блока except эта переменная [X] удаляется. Так происходит оттого, что в противном случае она сохранила бы ссылку на стек вызовов времени выполнения, которая отложила бы сборку мусора, оставив выделенным избыточное пространство памяти. Однако удаление переменной происходит, даже если вы используете имя где-то в другом месте, и является более крайней политикой, чем применяемая для включений.»
«Вы обычно должны использовать в конструкциях except оператора try уникальные имена переменных, хотя они и локализуются внутри областей видимости. Если вам необходимо ссылаться на экземпляр исключения после оператора try, тогда просто присвойте его еще одному имени (saveit), которое не будет автоматически удаляться»:
try:
1/0
except Exception as X: # Python удаляет эту ссылку
saveit = X # Присвоить экземпляр исключения для его сохранения
print(saveit) # division by zero
Сделали для вас квест в футуристичном городе инженеров
Во время маленького приключения вы разберетесь как устроен YADROpolis, блеснёте своими сильными сторонами и узнаете своё ПРЕДНАЗНАЧЕНИЕ* на ближайшие несколько лет: https://tprg.ru/F7Hs
*аkа магистерская программа в одном из топовых технических ВУЗов страны.
Во время маленького приключения вы разберетесь как устроен YADROpolis, блеснёте своими сильными сторонами и узнаете своё ПРЕДНАЗНАЧЕНИЕ* на ближайшие несколько лет: https://tprg.ru/F7Hs