我有以下裝飾器: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)如果函數(shù)返回多個(gè)值,則將返回包含3和4的單個(gè)元組。如何保持多值返回行為而不是元組?@my_deco()def f(): return 3, 4
1 回答

偶然的你
TA貢獻(xiàn)1841條經(jīng)驗(yàn) 獲得超3個(gè)贊
如注釋中所述,Python用于返回多個(gè)值的機(jī)制是返回一個(gè)元組。
在一個(gè)簡(jiǎn)化的示例中,這很容易看到:
def f():
return 3, 4
print(type(f()))
<class 'tuple'>
而且,還應(yīng)該注意的是,這并不是通過魔術(shù)在幕后發(fā)生的;3, 4在函數(shù)返回之前,單獨(dú)創(chuàng)建一個(gè)元組。
因此,回答您的問題,這不是問題。兩種情況下的行為是相同的。
添加回答
舉報(bào)
0/150
提交
取消