400-650-7353

精品課程

您所在的位置:首頁 > IT干貨資料 > python > 【Python基礎知識】Python函數的關鍵字參數和參數的默認值

【Python基礎知識】Python函數的關鍵字參數和參數的默認值

  • 發布: python培訓
  • 來源:python干貨資料
  • 2020-11-27 11:29:34
  • 閱讀()
  • 分享
  • 手機端入口

1、關鍵字參數

關鍵字參數是按照名稱傳遞參數的,而與參數的位置無關,它使用類似給變量賦值的方式調用。以student_grade()函數為例,使用關鍵字參數調用:

  1. >>> def student_grade(name, grade, has_bonus): 
  2. ...     if has_bonus: 
  3. ...         grade += 10 
  4. ...     if grade > 100
  5. ...         grade = 100 
  6. ...     print('{name}的成績為{grade}'.format(name=name, grade=grade)) 
  7. ...  
  8. >>> student_grade(name='Ming', grade=79, has_bonus=False
  9. Ming的成績為79 

使用關鍵字參數調用函數時,參數的位置變得無關緊要,只要參數的名字是正確的,函數就能夠正常調用:

  1. >>> student_grade(grade=80, has_bonus=True, name='Ming'
  2. Ming的成績為90 
  3. >>> student_grade(has_bonus=True, name='Ming', grade=99
  4. Ming的成績為100 

關鍵字參數和位置參數還可以混用,下面都是合法的調用方式:

  1. >>> student_grade('Ming', grade=79, has_bonus=False
  2. Ming的成績為79 
  3. >>> student_grade('Ming'79, has_bonus=False
  4. Ming的成績為79 

混用關鍵字參數和位置參數使得調用函數變得更加靈活,但是有一種情況是不合法的,即關鍵字參數出現在位置參數的前面:

  1. >>> student_grade(name='Ming', bonus=False59
  2.   File "", line 1 
  3. SyntaxError: positional argument follows keyword argument 

Python解釋器提示出錯了,因為位置參數跟在了關鍵字參數后面。

說明

無論是位置參數還是關鍵字參數,都是函數在調用時使用的說法,也就是實參,稱它們為位置實參和關鍵字參數更準確。

2、參數的默認值

在創建自定義函數時,可以給參數提供默認值。如果在調用函數時指定了參數的值,那么使用該值,否則使用默認值。在之前的student_grade()基礎上稍作修改,給has_bonus參數提供一個默認值:False,即默認沒有10分的獎勵分:

  1. >>> def student_grade_v1(name, grade, has_bonus=False): 
  2. ...     if has_bonus: 
  3. ...         grade += 10 
  4. ...     if grade > 100
  5. ...         grade = 100 
  6. ...     print('{name}的成績為{grade}'.format(name=name, grade=grade)) 
  7. ...  

在調用函數時,可以不指定has_bonus參數的值:

  1. >>> student_grade_v1('Ming'59
  2. Ming的成績為59 

當然也可以指定has_bonus參數的值,此時has_bonus的值為指定的值,可以使用關鍵字參數或者位置參數:

  1. >>> student_grade_v1('Ming'59True
  2. Ming的成績為69 
  3. >>> student_grade_v1('Ming'59, bonus=True
  4. Ming的成績為69 

下面是一個有更多參數默認值的示例:

  1. >>> def personal_info(name, gender='女', pet='狗', has_glasses=False): 
  2. ...     tag = '他' if gender == '男' else '她'   # 用三目運算符確定性別稱呼 
  3. ...     print('{0}是個{1}孩。'.format(name, gender)) 
  4. ...     print('{}最喜歡的寵物是{}。'.format(tag, pet)) 
  5. ...     if has_glasses: 
  6. ...         print('{0}戴眼鏡。'.format(tag)) 
  7. ...     else
  8. ...         print('{0}不戴眼鏡。'.format(tag)) 
  9. ...  

這個函數比之前的要復雜一些,它會根據用戶提供的信息,打印一些個性化的句子。因為此函數有很多參數,所以合法的調用方式有很多,以下是其中的一些:

  1. >>> personal_info('梅梅')   # 一個位置參數,即名字,其他參數使用默認值 
  2. 梅梅是個女孩。 
  3. 她最喜歡的寵物是狗。 
  4. 她不戴眼鏡。 
  5. >>> personal_info(name='梅梅')   # 一個關鍵字參數 
  6. 梅梅是個女孩。 
  7. 她最喜歡的寵物是狗。 
  8. 她不戴眼鏡。 
  9. >>> personal_info('梅梅', has_glasses=True)  # 一個關鍵字參數和一個位置參數 
  10. 梅梅是個女孩。 
  11. 她最喜歡的寵物是狗。 
  12. 她戴眼鏡。 
  13. >>> personal_info(name='小明', gender='男')   # 兩個關鍵字參數 
  14. 小明是個男孩。 
  15. 他最喜歡的寵物是狗。 
  16. 他不戴眼鏡。 
  17. >>> personal_info(pet='貓', name='梅梅')   # 兩個關鍵字參數 
  18. 梅梅是個女孩。 
  19. 她最喜歡的寵物是貓。 
  20. 她不戴眼鏡。 
  21. >>> personal_info('小明''男''貓'True)  # 四個位置參數 
  22. 小明是個男孩。 
  23. 他最喜歡的寵物是貓。 
  24. 他戴眼鏡。 

如果對Python開發感興趣或者想要深入學習的現在可以免費領取學習大禮包哦(點擊領取80G課程資料 備注:領資料)。

學習疑問申請解答
您的姓名
您的電話
意向課程
 

中公優就業

IT小助手

掃描上方二維碼添加好友,請備注:599,享學習福利。

>>本文地址:
注:本站稿件未經許可不得轉載,轉載請保留出處及源文件地址。

推薦閱讀

優就業:ujiuye

關注中公優就業官方微信

  • 關注微信回復關鍵詞“大禮包”,享學習福利
QQ交流群
在線疑問解答
(加群備注“網站”)
IT培訓交流群 加入群聊 +
軟件測試 加入群聊 +
全鏈路UI/UE設計 加入群聊 +
Python+人工智能 加入群聊 +
互聯網營銷 加入群聊 +
Java開發 加入群聊 +
PHP開發 加入群聊 +
VR/AR游戲開發 加入群聊 +
大前端 加入群聊 +
大數據 加入群聊 +
Linux云計算 加入群聊 +
優就業官方微信
掃碼回復關鍵詞“大禮包”
享學習福利

測一測
你適合學哪門IT技術?

1 您的年齡

2 您的學歷

3 您更想做哪個方向的工作?

獲取測試結果
 
課程資料、活動優惠 領取通道
 
 
特级欧美AA毛片免费观看,A级毛片高清免费视频就,免费观看性欧美大片毛片_首页