Python語言入門(六)關鍵字參數與命名關鍵字參數

#關鍵字參數表示可以接收類似字典的key-value參數形式      
def kwParamsFunc(name,age,**kwp):
    print(name,age)
    if 'sex' in kwp:
        print(kwp['sex'])
#調用
kwParamsFunc('wn', 18, sex='女', phone='18684638281')
#如果函數內使用了某個關鍵字參數,但調用時沒有傳入,如上代碼會有異常
#爲了解決這個問題,可以在函數內部檢查,改爲如下:
def kwParamsFunc2(name,age,**kwp):
    print(name,age)
    if 'sex' in kwp:
        print(kwp['sex'])

#如果要限制只能傳指定名字的參數,則可以使用命名關鍵字參數
#命名關鍵字參數,是對關鍵字參數方式的進一步約束,更安全了
#定義需要一個*號作爲分隔符,*後面的參數表示只能傳遞該名字的參數
#如下表示兩個位置參數,還有一個名爲qq的關鍵字參數,調用時傳其它名字會報錯
def namedKwywordsParam(name,age,*,qq):
    print(name,age,qq)
    
#如果函數定義中已經有了一個可變參數,後面跟着的命名關鍵字參數就不再需要一個特殊分隔符*了
#如下函數,有name和sex兩個位置參數,*personInfo是可變參數列表(tuple)
#qq則是一個命名關鍵字參數,調用時需要同時指定參數名和值
def register(name,sex,*personInfo,qq):
    print('姓名:' ,name,'性別:',sex)
    for arg in personInfo:
        print(arg)
    print('QQ號:%s' % qq)
register('newton', '男','0735',qq='2300666')

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章