def simple_decorator(f):
def tmp(*args, **kwargs):
res = f(*args, **kwargs)
return res
return tmp
@simple_decorator
class FirstClass():
pass
@simple_decorator
class SecondClass(FirstClass):
pass
我有错误:
File "1.py", line 16, in <module>
class SecondClass(FirstClass):
TypeError: Error when calling the metaclass bases
function() argument 1 must be code, not str
为什么?
答案 0 :(得分:6)
你的装饰者返回一个函数,所以FirstClass
是一个函数,而不是一个类;装饰器不需要返回与输入类型相同的对象。
答案 1 :(得分:0)
你的错误在于你正试图装饰一个班级。 检查PEP-3129。