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

    课程好礼申请领取
    您的姓名
    您的电话
    意向课程
     

    中公优就业

    官方QQ

    扫描上方二维码或点击一键加群,免费领取价值599元网课,加群暗号:599。 一键加群

    >>本文地址:
    注:本站稿件未经许可不得转载,转载请保留出处及源文件地址。

    推荐阅读

    优就业:ujiuye

    关注中公优就业官方微信

    • 关注微信回复关键词“大礼包”,领80G学习资料
    QQ交流群
    领取免费网课
    (加群备注“网站”)
    IT培训交流群 加入群聊 +
    软件测试 加入群聊 +
    全链路UI/UE设计 加入群聊 +
    Python+人工智能 加入群聊 +
    互联网营销 加入群聊 +
    Java开发 加入群聊 +
    PHP开发 加入群聊 +
    VR/AR游戏开发 加入群聊 +
    大前端 加入群聊 +
    大数据 加入群聊 +
    Linux云计算 加入群聊 +
    优就业官方微信
    扫码回复关键词“大礼包”
    领取80G学习资料

    测一测
    你适合学哪门IT技术?

    1 您的年龄

    2 您的学历

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

    获取测试结果
     
    课程资料、活动优惠 领取通道
     
     
    韩国毛茸茸的丰满妇女,亚洲国内自拍愉拍,高清性色生活片97,亚洲日本成本人观看 网站地图