IT培训网更多 收回

IT培训
关注我们
微信公众号 回复"大礼包"享福利 学习交流群 分享IT知识
|

IT在线学习更多 收回

热门课程 更多 >
  • Java开发
  • Web前端
  • Python+人工智能
  • 全链路UI/UE设计
  • VR/AR游戏开发
  • 大数据
  • 室内设计
  • PMP认证
  • 互联网营销
  • 全域电商运营
  • 新媒体与短视频运营
  • 软件测试
  • Linux云计算
  • Office
  • 计算机二级
  • 计算机软考
OAO训练营
不离岗 不离校 学门IT技术
优学VIP
16大类IT课程 提升职场竞争力
关注我们
下载【IT优学】 缓存视频随时随地学 微信扫码关注 回复“大礼包”享福利
| 初高中软件培训| 中公企商培训| 中公联合办学| 优校邦| 中公PMP| 中公软考| 计算机二级培训| 趣码AI
登录 | 注册
400-650-7353

精品课程

您所在的位置:首页 > IT干货资料 > python > 【Python基础知识】Python函数的关键字参数和参数的默认值

【Python基础知识】Python函数的关键字参数和参数的默认值

  • 发布: python培训
  • 来源:python干货资料
  • 2020-11-27 11:29:34
  • 阅读()
  • 分享
  • 手机端入口
  • 活动 5天IT课程 申请试学
  • 活动 申请免费基地参观
  • 活动 申请中公购书补助

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 您更想做哪个方向的工作?

获取测试结果
 
课程资料、活动优惠 领取通道
 
 
  • 申请试听
  • 干货资料
  • 网课咨询
  • 学习交流群
  • 返回顶部