使用type和s打印动态定义的Python类和方法的定义

2024-04-29 04:22:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图使用typesetattr动态定义一个类及其方法。但是,当我尝试使用inspect.getsource打印类的内容时,它找不到类定义。我错过了什么

我希望最后一行可以打印class NewTest(): def prt(self): print("test") def requires(self): return 'success'

import inspect

class test():
    def prt(self):
        print("test")

def method1(cls):
    return 'success'

klass = type('NewTest', (test,), {})
setattr(klass, 'requires', classmethod(method1))

print(inspect.getsource(test))   #'class test():     def prt(self):        print("test")'
print(inspect.getsource(klass)) # {OSError}could not find class definition

Tags: testselfreturn定义deftypeclassprt