私はデバッグツールを構築しています。Pythonクラスがあると、定義されている場所でコード内の場所を調べて見つける方法はありますか?
IPythonは私が
MyCls??
のようなものを行うことができますそして、それは私にソースが表示されます。
私はデバッグツールを構築しています。Pythonクラスがあると、定義されている場所でコード内の場所を調べて見つける方法はありますか?
IPythonは私が
MyCls??
のようなものを行うことができますそして、それは私にソースが表示されます。
sys.modules[MyCls.__module__].__file__
または
inspect.getsourcefile(MyCls)
さまざまなオブジェクトの__xxx__
attributesより多くのあなたが役に立つかもしれませんがあります。
はここでPythonのメタ情報機能の多くのかなり良い概要です:
inspectモジュールには、必要なものがすべて含まれています。
あなただけのソースを見たい場合は、inspect.getsourceはそれを行うには非常に直接的な方法です。 (ソースファイル、行番号などを取得して)より高度な用途のために、ちょうどgetsource
前に、同じURLで文書化inspect
に他の機能を参照してください。このような各関数は、ソースが利用できない場合には例外を発生させるので、コールするときにtry
/except
ブロック内にあることを確認し、ケースに応じて例外を処理してください。また、の機能を呼び出すモジュールで、import inspect
が必要です。