Есть ли способ контролировать, в каком пространстве имен вы окажетесь после необработанного исключения?Например, если я нахожусь в приглашении ipython и иду run blah.py
на файл со следующим содержимым:
def spam():
ham = 'ham'
crash = 1/0
eggs = 'eggs'
if __name__ == '__main__':
foo = 'foo'
spam()
он явно вылетает, но возвращает меня к приглашению ipython, с foo
сейчасв пространстве имен (и любые ранее существующие foo
теперь перезаписываются 'foo'
).Но нет ham
.При некоторых проверках после вскрытия я часто возвращаюсь к интерпретатору в области действия функции spam()
, так что ham
будет видно, eggs
и foo
не будет ...
Я знаю, что могу получить доступ к этим вещам с помощью pdb.set_trace()
, но было бы замечательно, если бы был более простой ярлык, потому что я нахожу, что подсказка ipython более приятна.я часто копирую код функции в глобальное пространство имен и проверяю оттуда.