トレースバックの精巧な再検査を行い、トレースバックとともにより多くの (より良い?) 情報を返さないオブジェクトから実際の値を取得しようとしています。
ケース シナリオは、次のようにインポートして実行する関数にあります。
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 は True で be は False」のようなことを安全に言うことができるように、何と何a
を示すことができる正しいアプローチは何でしょうか?b