命名關鍵字參數

若是要限制關鍵字參數的名字,可用命名關鍵字參數

定義命名關鍵字參數函數函數

def person(name, age, *, city, job): #和關鍵字參數**kw不一樣,命名關鍵字參數須要一個特殊分隔符*,*後面的參數被視爲命名關鍵字參數
  print(name, age, city, job) person('Jack', 24, city='Beijing', job='Engineer') #命名關鍵字參數必須傳入參數名,這和位置參數不一樣。若是沒有傳入參數名,調用將報錯


若是函數定義中已有一個可變參數,則後面跟着的命名關鍵字參數就再也不須要一個特殊分隔符*了spa

def person(name, age, *args, city, job):   print(name, age, args, city, job) person('Jack', 24, city='Beijing', job='Engineer') #輸出:Jack 24 () Beijing,Engineer


命名關鍵字參數可經過設置默認值來簡化調用code

def person(name, age, *, city='Beijing', job):   print(name, age, city, job) person('Jack', 24, job='Engineer') #因爲命名關鍵字參數city具備默認值,調用時,可不傳入city參數

 

使用命名關鍵字參數時,若是沒有可變參數,就必須加一個*做爲特殊分隔符,若是有可變參數,則可變參數可代替特殊分隔符*
總之位置參數和命名關鍵字參數之間,必須有一個東西用以區別
若是缺乏*,Python解釋器將沒法識別位置參數和命名關鍵字參數blog

def person(name, age, city, job): # 缺乏 *,city和job被視爲位置參數
  pass person('Jack', 24, city='Beijing', job='Engineer')
相關文章
相關標籤/搜索