0

有没有办法知道变量在 python 中定义的位置(例如文件名)?

我遇到了以下问题:在一个项目的源文件中,有一个“打印变量”语句,并且该文件中没有定义变量,我找不到定义变量的位置。

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 回答