有没有办法知道变量在 python 中定义的位置(例如文件名)?
我遇到了以下问题:在一个项目的源文件中,有一个“打印变量”语句,并且该文件中没有定义变量,我找不到定义变量的位置。
不,不适用于变量。变量只是对任意python对象的引用,如果你能找到变量,你就找到了定义它的函数、类或模块。
我怀疑您想知道在哪里定义了 python对象;对于许多可以从对象的.__file__
属性来确定的对象。对于类,您必须首先遍历它的模块,对于方法,遍历它的函数,对于函数,找到它的代码对象,对于代码对象,使用它们的.co_filename
属性等。
或使用该getsourcefile()
功能自动化该过程:
>>> import inspect
>>> inspect.getsourcefile(inspect.getsourcefile)
'/usr/lib/python2.6/inspect.py'
您可以使用inspect
模块来获取定义对象的信息:http: //docs.python.org/2/library/inspect.html#inspect.getsourcefile