【发布时间】:2023-04-02 02:20:01
【问题描述】:
我正在尝试使用inspect.getsource()
来获取这样定义的类的源代码:
import inspect
Cat = type('Cat', (), {})
def meow_local(self):
print("meow")
Cat.meow = meow_local
print(inspect.getsource(Cat))
我从检查中得到的错误是:
OSError: 找不到类定义
inspect 不知道找到 Cat 类的正确位置是可以理解的。我应该告诉inspect去哪里看?
或者有其他方法可以获得相同的结果吗?
【问题讨论】:
-
不确定,但我认为要输入的第二个参数应该是 (object,)
-
确保您也将文件保存为 python 文件。不能解决问题,但有帮助。
-
@stefan type() with 3 params 返回一个新类型并期望 1. 名称 2. 基类元组 3. 属性字典
标签:
python
python-3.x
reflection
metaprogramming
metaclass
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:如何获取我以编程方式声明的 Python 类的源代码? - Python技术站