Python 如何获取创建对象的文件的源代码?

Python 如何获取创建对象的文件的源代码?,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(

在my
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
的源代码”是什么意思?它是一个文件名,没有“源代码”。我指的是文件的内容。