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