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课程资料 备注:领资料)。

文章“【Python基础知识】Python函数的关键字参数和参数的默认值”已帮助

>>本文地址:https://www.ujiuye.com/zhuanye/2020/61672.html

THE END  

声明:本站稿件版权均属中公教育优就业所有,未经许可不得擅自转载。

1 您的年龄

2 您的学历

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

获取测试结果
  • 大前端大前端
  • 大数据大数据
  • 互联网营销互联网营销
  • JavaJava
  • Linux云计算Linux
  • Python+人工智能Python
  • 嵌入式物联网嵌入式
  • 全域电商运营全域电商运营
  • 软件测试软件测试
  • 室内设计室内设计
  • 平面设计平面设计
  • 电商设计电商设计
  • 网页设计网页设计
  • 全链路UI/UE设计UI设计
  • VR/AR游戏开发VR/AR
  • 网络安全网络安全
  • 新媒体与短视频运营新媒体
  • 直播带货直播带货
  • 智能机器人软件开发智能机器人
 

快速通道fast track

近期开班时间TIME