我有以下装饰器:
def my_deco(limit=None):
def wrap_outer(func):
def wrap_inner(*args, **kwargs):
return func(*args, **kwargs)
return wrap_inner
return wrap_outer
它通过
调用实际的修饰函数func(*args, **kwargs)
如果一个函数返回多个值,这将返回一个包含3和4的单个元组。如何保持多值返回行为而不是元组?
@my_deco()
def f():
return 3, 4
答案 0 :(得分:2)
如注释中所述,Python用于返回多个值的机制是返回一个元组。
在一个简化的示例中,这很容易看到:
def f():
return 3, 4
print(type(f()))
<class 'tuple'>
而且,还应该注意的是,这并不是通过魔术在幕后发生的;仅3, 4
会在函数返回之前创建一个元组。
因此要回答您的问题,这不是问题。两种情况下的行为都相同。