我有點困惑。我們來創建一個名爲x的函數。我知道,通過將*放在y之前,這意味着我們可以添加儘可能多的參數。混淆python星號符號的雙重用法(作爲函數參數或作爲函數定義)
def x(*y):
return y
但是,
案例1:
>>> x(1, 2)
(1, 2)
案例2: 我們之前它傳遞一個列表[1,2]有星號:
>>> x(*[1,2])
(1, 2)
看來,一個星號有兩種用途:
- 對於允許在函數多個參數 - 本質上把它們放入一個列表
- 如果做兩次,「掰開」列表爲單獨的項目
這是爲什麼?爲什麼我不能這樣做:* a * b?