Python 如何获取创建对象的文件的源代码?
在myPython 如何获取创建对象的文件的源代码?,python,reflection,module,Python,Reflection,Module,在mymain.py中,我有以下Python代码: from tasks import SimpleTask from reflectors import Reflector task = SimpleTask() source_code = Reflector().get_source_code(task) 我想从Reflector内部获取main.py的源代码。仅使用传递的参数task获取\u source\u code() 如果我在Reflector.get_source_code(
main.py
中,我有以下Python代码:
from tasks import SimpleTask
from reflectors import Reflector
task = SimpleTask()
source_code = Reflector().get_source_code(task)
我想从Reflector内部获取main.py
的源代码。仅使用传递的参数task
获取\u source\u code()
如果我在Reflector.get_source_code()中使用Python的inspect
模块执行以下操作:
def get_source_code(self, task):
return str(inspect.getsource(inspect.getmodule(task)))
我得到了tasks
模块的源代码,其中定义了SimpleTask
类
但是,我想获取main.py的源代码(创建task
object的文件)
我已设法做到以下几点:
source_code = Reflector().get_source_code(lambda: task)
def run(self, task_callback):
source_code = str(inspect.getsource(inspect.getmodule(task_callback)))
但是,我不喜欢lambda:task的语法
没有lambda hack有什么方法可以实现这一点吗?不太确定,这个语法有什么问题,但是你可以尝试应用。你能给我举个例子吗?我不知道该怎么用它。因此,您认为从对象
任务获取main.py
源代码是不可能的?您所说的“main.py
的源代码”是什么意思?它是一个文件名,没有“源代码”。我指的是文件的内容。