我有以下装饰器: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
1 回答
偶然的你
TA贡献1841条经验 获得超3个赞
如注释中所述,Python用于返回多个值的机制是返回一个元组。
在一个简化的示例中,这很容易看到:
def f():
return 3, 4
print(type(f()))
<class 'tuple'>
而且,还应该注意的是,这并不是通过魔术在幕后发生的;3, 4在函数返回之前,单独创建一个元组。
因此,回答您的问题,这不是问题。两种情况下的行为是相同的。
添加回答
举报
0/150
提交
取消