0

Python で変数が定義された場所 (ファイル名など) を知る方法はありますか?

次の問題が発生しています。プロジェクトのソース ファイルの 1 つに "print variable" ステートメントがあり、変数がそのファイルで定義されておらず、変数が定義されている場所が見つかりません。

4

2 に答える 2

2

いいえ、変数ではありません。変数は任意のPythonオブジェクトへの単なる参照であり、変数が見つかった場合は、それが定義されている関数、クラス、またはモジュールが見つかります。

代わりに、Pythonオブジェクトがどこで定義されているかを知りたいと思います。.__file__オブジェクトの属性から決定できる多くのオブジェクトの場合。クラスの場合、最初にモジュールをトラバースして、メソッドの場合、関数のトラバース、関数の場合、コードオブジェクトの検索、コードオブジェクトの場合、.co_filename属性の使用などを行う必要があります。

または、getsourcefile()関数を使用してそのプロセスを自動化します。

>>> import inspect
>>> inspect.getsourcefile(inspect.getsourcefile)
'/usr/lib/python2.6/inspect.py'
于 2012-12-17T15:01:23.943 に答える
0

モジュールを使用inspectして、オブジェクトが定義された場所の情報を取得できます:http: //docs.python.org/2/library/inspect.html#inspect.getsourcefile

于 2012-12-17T15:00:03.153 に答える