若 lst = [1 , 2 , 3 , 4 ]
def add(a,b,c,d):
return a+b+c+d
add(*lst) = add(lst[0],lst[1],lst[2],lst[3]) = add(1,2,3,4)=sum(lst)
Python 沒有多載(overload)
多載:允許相同名字的函數存在,只是他們的參數數量不同
比方說,我們今天要寫一個函式
在java 或是C++中,我們可以
def add(a,b):
return a+b
def add(a,b,c):
return a+b+c
add(1,2) >>>3
add(1,2,3) >>>6
透過add 參數的不同來分辨呼叫的函式
Python 裡面沒有這種方法,我們可以透過清單
def add(lst):
return sum(lst)
還有另一種方法
def add(*tmp):
return sum(tmp)
在這裡位於參數列的*tmp會將所有傳入的元素收集成元組
對於字典的呼叫我們可以使用**雙綴星號的方式
def power (base,exp):
return base**exp
dic = {'base':2,'exp':3}
print power(**dic)
**dic 會將dic 拆解成 base = 2,exp = 3)
定義函式上也可以使用
def power(**dic):
return dic['base'] ** dic['exp']
print power(base=2,exp=3)