2024-05-17 19:39:05 发布
网友
我想创建一个decorator来更改函数的返回值,如下所示?以下内容:
def dec(func): def wrapper(): #some code... #change return value append 'c':3 return wrapper @dec def foo(): return {'a':1, 'b':2} result = foo() print result {'a':1, 'b':2, 'c':3}
我在这里尽量比较笼统,因为这可能是一个玩具示例,您可能需要一些参数化的东西:
from collections import MutableMapping def map_set(k, v): def wrapper(func): def wrapped(*args, **kwds): result = func(*args, **kwds) if isinstance(result, MutableMapping): result[k] = v return result return wrapped return wrapper @map_set('c', 3) def foo(r=None): if r is None: return {'a':1, 'b':2} else: return r >>> foo() {'a': 1, 'c': 3, 'b': 2} >>> foo('bar') 'bar'
嗯。。。。调用修饰函数并更改返回值:
def dec(func): def wrapper(*args, **kwargs): result = func(*args, **kwargs) result['c'] = 3 return result return wrapper
我在这里尽量比较笼统,因为这可能是一个玩具示例,您可能需要一些参数化的东西:
嗯。。。。调用修饰函数并更改返回值:
相关问题 更多 >
编程相关推荐