Python3函數參數的各種形式

形式1:

定義:def function_name(arg1,arg2,arg3):

調用:function_name(x,y,z)

說明:調用傳入 的參數個數必須和定義的參數個數一致,調用的時候參數一一對應賦值。


形式2:

定義:def function_name(arg1,arg2=default):

調用:function_name(x,y)

說明:至少傳入一個參數用來給arg1賦值,如果傳入了第二個參數。就賦值給arg2,沒有第二個參數的話,arg2就用定義的default默認值。


形式3:

定義:def function_name(*arg1):

調用:function_name(1,2,3,4)

說明:可以傳入任意多個參數,這些參數最終被封裝成爲一個tuple。

舉個栗子:

deffunction_with_one_star(*t):
    print(t, type(t))


使用:function_with_one_star(1, 2, 3)

輸出:(1, 2, 3) <class 'tuple'>


形式4:

定義:def function_name(**arg1):

調用:function_name(a=1,b=3,c=4)

說明:可以傳入任意多個參數,這些參數最終被封裝成爲一個dic字典{‘A’:‘1’,‘B’:‘3’,‘C’:‘4’}。

舉個栗子:

def function_with_two_stars(**d)
    print
(d, type(d))


使用;function_with_two_stars(a = 1, b = 2, c = 3)

輸出:{'a':1, 'c':3, 'b':2} <class 'dict'>


其他分類方法:

1、位置參數:
>>> def check_web_server(host, port, path):
             print ....
 
>>> check_web_server('www.python.org', 80, '/') 三個參數的順序必須一一對應,且少一參數都不可以
 
2、關鍵字參數:
可以讓函數更加清晰、容易使用,同時也清除了參數的順序需求,關鍵字參數通過“鍵-值”形式加以指定,用於函數調用
>>> check_web_server(port=80, host='www.python.org', path='/') (三個參數的位置可以隨意)
 
3、默認參數:
爲參數提供默認值,這樣向它們傳遞參數就不是必需的了,用於函數定義(注意:所有位置參數必須出現在可選參數前,包括函數定義和調用)
 
>>> def check_web_server(host, port=80, path='/'):  # 正確的
        print ...
>>> def check_web_server(path='/', host, port=80):  # 錯誤的(位置參數host必須放在最前面)
                print ...
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章