Я пытаюсь провести тщательную повторную проверку трассировки и получить фактические значения от объектов, которые не могут вернуть больше (лучше?) Информации вместе с трассировкой.
Сценарий случая находится вфункция, которую я импортирую и выполняю, выглядит следующим образом:
def foo():
a = True
b = False
assert a == b
И выполняется следующим образом:
from foo import foo
def re_inspect():
try:
foo()
except Exception, e:
# re-inspect traceback and check `a` and `b`
Когда поднимается AssertionError
, если я пытаюсь оценить строкутам, где возникает исключение, я (конечно) не могу сказать, что такое a
или b
(NameError
возникает немедленно), потому что мне не хватает контекста кода.
Примечаниечто у меня нет доступа к a
и b
, так как приведенный выше код импортируется и затем выполняется.Поскольку foo
не находится в текущем пространстве имен, моя проблема заключается в получении правильных значений из контекста foo
.
Каким будет правильный подход, позволяющий определить, что такое a
и b
, чтобы вы могли смело сказать что-то вроде: "a - Истина, а be - Ложь"?