我對函數調用中的函數頭和參數規則中的參數規則有些混淆。函數調用和*表達式
這裏是我的困惑點:
根據文檔:
如果語法*表達出現在函數調用,表達式必須可迭代。來自這個迭代器的元素被視爲它們是附加的位置參數;如果存在位置參數x1,...,xN,並且表達式計算爲序列y1,...,yM,則這相當於具有M + N個位置參數x1,...,xN,y1,...的調用。 ..,yM。
因此,如果有這樣的功能:
def func(a, *b): ....
爲什麼我不能做這樣的事情:
func(1, *[2, 3], *[4, 5])
這不是等同於X1,... ,xN,y1,...,yN,w1,...,wN 爲什麼不能工作?
而你引用的非常相同的文檔包括語法語法。官方語法只允許**一個**'*表達式'。 – 2014-08-27 10:32:57