標籤:def 可變參 集合 log named 函數 學習 pytho 武漢
Python的函數部分知識與其他語言差不多,唯獨參數這塊,有點不好理解。
1.預設參數
def f_default_parameters(a,b,c=1): print(a,b,c)f_default_parameters(1,2,3)f_default_parameters(1,2,c=3)
2.可變參數(內部將參數組裝成tuple)
def f_variable_parameters(*args): print(args)f_variable_parameters(1,2,3)f_variable_parameters(*[1,2,3]) #將集合轉換成可變參數f_variable_parameters(*(1,2,3)) #將元群組轉換成可變參數f_variable_parameters()
3.關鍵字參數(函數內部將參數組裝成dict)
def f_keyword_parameters(**kv): print(kv)f_keyword_parameters(name=‘owen‘,age=3)f_keyword_parameters(**{‘name‘:‘owen‘,‘age‘:3})
4.命名關鍵字參數(限制關鍵字參數)
def f_named_keyword_parameters(*,city,address=‘hubei of china‘): print(city,address)f_named_keyword_parameters(city=‘wuhan‘)f_named_keyword_parameters(city=‘wuhan‘,address=‘hubei of china‘)
5.組合
#如果已經有了可變參數,則後面的命名關鍵字參數則不需要*分隔字元了def f(*args, city=‘武漢‘,address): print(args,city,address)f(1,2,city=‘wuhan‘,address=‘hubei of china‘)
def f(*args, city=‘武漢‘,**kv): print(args,city,kv)f(1,2,city=‘wuhan‘,address=‘hubei of china‘)
#對於任意函數,都可以通過類似func(*args,**kw)的形式調用它,無論它的參數是如何定義的def f(*args, **kv): print(args,kv)f(1,2,city=‘wuhan‘,address=‘hubei of china‘)
Python學習——函數