带参数,改变类型

问题描述:

我只是在蟒蛇装饰玩耍,享受的经验,给我装饰类似乎更清洁对我来说比装饰功能,所以我一直在玩这个设计带参数,改变类型

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()函数什么也没有返回。你的意思是让它成为一堂课吗?

+0

林要去bash的我的头,感谢察觉这 – 2011-06-13 08:43:34

也许你想更换

def returns(object): 

通过

class returns(object): 
+0

察觉到而已,平时我不会做出那样的根本性错误 – 2011-06-13 08:45:25