带有参数并更改类型的Python装饰器类

| 我只是用python和装饰器一起玩耍并享受经验,对我来说,装饰器类比装饰器函数更干净,所以我一直在玩这种设计
def returns(object):
    \"\"\"Enforces return to a specific type\"\"\"
    def __init__(self, returns):
        self.returns = returns

    def __call__(self, func):
        def wrapped(*args):
            out = func(*args)
            return self.returns(out)
        return wrapped

@returns(int) 
def test():
    return \'4\'
上面的代码的问题是它返回
------------------------------------------------------------
Traceback (most recent call last):
  File \"\", line 1, in <module>
  File \"\", line 122, in runfile
    execfile(filename, glbs)
  File \"\", line 33, in <module>
    @returns(int)
TypeError: \'NoneType\' object is not callable
我想知道为什么我可以像函数一样调用int(),它具有可调用的方法,但是在这里将其表示为NoneType而不是可调用的。 有任何想法吗? 编辑:请没有更多的答案,问题已经解决,我明白我做错了。它是一个错字和我定义一个函数而不是一个类     
已邀请:
        您的
returns()
函数不返回任何内容。你是说要上课吗?     
        也许您想更换
def returns(object):
通过
class returns(object):
    

要回复问题请先登录注册