実行時に、オブジェクトがインスタンス化された場所を見つけようとしています。これにより、ライブラリのユーザーに非常に役立つエラー メッセージを提供できるようになります。
次のコードがあるとします。
import mylib
obj = mylib.MyClass()
obj
その後、 から別のクラスのインスタンスに渡されmylib
、素晴らしい旅を続けます。線のどこかで、何か悪いことが起こります。インスタンス化obj
された場所をユーザーに示したいと思います。obj
inspectモジュールを使用して、obj
インスタンス化されたファイルと行番号を確認できることを望んでいました。残念ながら、inspect.getsourcefile
とinspect.getsourcelines
はインスタンスをサポートしていません。これがサポートされていない技術的な理由はありますか?
探しているデータを取得する別の方法はありますか?