• Python学习之函数参数


    上一节,我们学习了Python中是如何定义和调用函数且如何得到返回值的。在调用函数时,有的函数需要参数来启动函数,有的则无需参数。这一节我们来介绍Python中有哪些参数类型。

    位置参数 在调用函数时,必须按照参数定义的顺序依次赋给参数
    默认参数 只需赋给常变参数,不常变参数将作为默认值传递给函数。如果需要替换不常变参数的默认值,只需在调用函数时向该参数传入想要的值即可。定义默认值参数时,要将常变参数定义在前,默认值参数定义在后。
    可变参数  由于有些函数的参数个数是不确定的,Python提供可变参数*args,将args作为一个元祖传递0个或者多个参数给函数
    关键字参数  可变参数在调用时将自动组装成一个元祖,而关键字参数允许传入0个或者多个含有参数名的参数,这些关键字参数在函数调用时会自动封装成一个字典
    命名关键字参数  关键字参数可以接受0个或者多个任意不受限制的关键字参数,而命名关键字参数通过*,kw1,kw2 规定只允许接受哪些关键字参数
    组合参数  python中定义函数时,可以使用必选参数、默认参数、可变参数、关键字参数、命名关键字参数五种参数规则的组合一起使用。顺序是 必选参数>默认参数>可变参数>命名关键字参数>关键字参数

     

     

    位置参数:

    1 def my_def(name,age):
    2   print( name,age)
    3 a=my_def('zhangsan',18)

    执行结果:

    1 zhangsan 18

    若调用参数位置

    1 def my_def(name,age):
    2   print( name,age)
    3 a=my_def(18,'zhangsan')

    执行结果

    1 18 zhangsan

    默认值参数

    1 def my_def(name,age,city='beijing',job='python'):
    2   print( name,age,city,job)
    3 a=my_def('zhangsan',18)

    执行结果:

    1 zhangsan 18 beijing python

    若参数的默认值与实际的不符,在调用函数时,将对应的参数传入新值即可:

    1 def my_def(name,age,city='beijing',job='python'):
    2   print( name,age,city,job)
    3 a=my_def('zhangsan',18,city='henan')

    执行结果:

    1 zhangsan 18 henan python

    可变参数:

    1 def my_def(*args):
    2     sums=0
    3     for n in args:
    4         sums+=n*n
    5     print(sums)
    6 a=my_def(1,2,3)

    执行结果:

     1 14

    关键字参数:

    1 def my_def(name,age,**kwargs):
    2     print(name,age,kwargs['city'],kwargs['job'])
    3 a=my_def('zhangsan',18,city='beijing',job='python')

    执行结果:

     1 zhangsan 18 beijing python 

    命名关键字参数:

    1 def my_def(name,age,*,city,job):
    2   print( name,age,city,job)
    3 a=my_def('zhangsan',18,city= 'beijing',job='python')

    执行结果

     1 zhangsan 18 beijing python

    组合参数:

    1 def my_def(shool,classes,*args,**kwargs):
    2     print(shool,classes,args,kwargs)
    3 a=my_def('old boy',23,'zhangsan',18,city='beijing',job='python')

    执行结果:

    1 old boy 23 ('zhangsan', 18) {'city': 'beijing', 'job': 'python'}
  • 相关阅读:
    UI自动化测试(五)TestNG简介与安装步骤
    selenium webdriver 右键另存为下载文件(结合robot and autoIt)
    SpringBoot系列之日志框架介绍及其原理简介
    SpringBoot系列之profles配置多环境(篇二)
    SpringBoot系列之Spring容器添加组件方式
    MySQL基础之自连接用法简介
    MySQL基础之Natural Join用法
    MySQL基础之STRAIGHT JOIN用法简介
    SpringBoot系列之配置文件加载位置
    SpringBoot系列之外部配置用法简介
  • 原文地址:https://www.cnblogs.com/SunIan/p/9692178.html
Copyright © 2020-2023  润新知