带参数,改变类型
问题描述:
我只是在蟒蛇装饰玩耍,享受的经验,给我装饰类似乎更清洁对我来说比装饰功能,所以我一直在玩这个设计带参数,改变类型
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'
Python的装饰类
问题与上面的代码是返回
------------------------------------------------------------
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和不可调用。
任何想法?
编辑:请不要再回答问题已经解决,我明白我做错了什么。它是一个错字和im定义一个功能不是类
答
你的returns()
函数什么也没有返回。你的意思是让它成为一堂课吗?
答
也许你想更换
def returns(object):
通过
class returns(object):
+0
察觉到而已,平时我不会做出那样的根本性错误 – 2011-06-13 08:45:25
林要去bash的我的头,感谢察觉这 – 2011-06-13 08:43:34