的数量,我想装饰一个功能,采用这样的模式:装饰功能,并添加功能保留的说法
def deco(func):
def wrap(*a,**kw):
print "do something"
return func(*a,**kw)
return wrap
的问题是,如果装饰功能已具雏形这样:
def function(a,b,c): return
装饰时,将原型由可变参数破坏,例如,调用函数(1,2,3,4)将不会导致异常。这是避免这种情况的方法吗? 如何用与装饰(func)相同的原型来定义包装函数?
有什么概念错误?
编辑
我的乖张想法是,以减轻“父方法的调用”,而无需修改签名。喜欢的东西
def __init__(self, something)
super(ClassName, self).__init__(something)
到:
@extended
def __init__(self, something):
...
我搞清楚,如果这是可能的,如果这是有道理的。
编辑 亚历克斯指出,下面的代码不给一个例外:
function(1,2,3,4)
聪明但不安全:( – 2rs2ts 2013-07-31 23:53:00