【发布时间】:2011-02-14 19:27:39
【问题描述】:
需要创建一个类,它将作为“合并”功能执行所有操作。在课堂上我会改变、处理和添加新的论点。
def merge(*arg, **kwarg): # get decorator args & kwargs
def func(f):
def tmp(*args, **kwargs): # get function args & kwargs
kwargs.update(kwarg) # merge two dictionaries
return f(*args, **kwargs) # return merged data
return tmp
return func
用法:
@other_decorator # return *args and **kwarg
@merge(list=['one','two','three']) # need to merge with @other_decorator
def test(*a, **k): # get merged args and kwargs
print 'args:', a
print 'kwargs:', k
【问题讨论】:
-
你想让类装饰器做什么?该示例仅显示了一个函数装饰器。
-
需要创建一个类来作为“合并”功能来做所有事情。在课堂上,我将改变、处理和添加新的论点。功能“合并”有效,但我有太多的流程子功能。
标签: python class arguments decorator keyword-argument