在Python中使用简单装饰器时出错

Bdf*_*dfy 0 python

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
Run Code Online (Sandbox Code Playgroud)

我有错误:

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
Run Code Online (Sandbox Code Playgroud)

为什么?

Ign*_*ams 6

你的装饰器返回一个函数,函数FirstClass也是函数,而不是类; 装饰器不需要返回与输入类型相同的对象.