带有参数并更改类型的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而不是可调用的。
有任何想法吗?
编辑:请没有更多的答案,问题已经解决,我明白我做错了。它是一个错字和我定义一个函数而不是一个类
没有找到相关结果
已邀请:
2 个回复
粟痢凰副
函数不返回任何内容。你是说要上课吗?
桔马牛
通过