【发布时间】:2011-06-13 08:40:39
【问题描述】:
我只是在 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 而不是可调用的。
有什么想法吗?
编辑:请不要再回答问题已经解决了,我明白我做错了什么。它是一个错字,我定义了一个函数而不是一个类
【问题讨论】: