接受参数并更改类型的Python装饰器类

2024-06-26 14:19:11 发布

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

我只是在python中玩decorator并享受这种体验,对我来说,decorator类比decorator函数更干净,所以我一直在玩这个设计

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'

上面代码的问题是它返回

^{pr2}$

我想知道为什么我可以像函数一样调用int(),它有一个可调用的方法,但它在这里表示为它的NoneType和not callable。在

有什么想法吗?在

编辑:请不要回答问题已经解决了,我明白我做错了什么。这是一个打字错误,我定义了一个函数而不是一个类


Tags: to函数selfreturnobjectdefargsdecorator