私は、オブジェクトがインスタンス化された場所を実行時に調べようとしています。これは、私のライブラリのユーザに非常に有用なエラーメッセージを提供することを可能にするからです。オブジェクトがインスタンス化された場所を知るにはどうすればよいですか?
は、私たちが次のコードがあるとします。
import mylib
obj = mylib.MyClass()
obj
を、その後mylib
から別のクラスのインスタンスに渡され、そして素晴らしい旅に進行されます。どこかの行に沿って、obj
は何か悪いことが起こります。私はobj
がインスタンス化された場所をユーザーに指摘したいと思います。
inspectモジュールを使用して、どのファイルでどの回線番号obj
がインスタンス化されているかを調べることができました。残念ながら、inspect.getsourcefile
とinspect.getsourcelines
はインスタンスをサポートしていません。これがサポートされていない技術的な理由はありますか?
私が探しているデータを取得する別の方法はありますか?
はそれほど複雑ではありませんか?何か悪いことが起きたとき、私たち全員が(おそらく)何をするのでしょうか? import traceback + try:... except:traceback.print_exc() – StefanNch