当前位置 主页 > 网站技术 > 代码类 >

    Python函数中的可变长参数详解

    栏目:代码类 时间:2019-09-12 20:07

    一、Python函数中的参数

    1、使用python的函数时,有参数类别,比如位置参数、关键字参数、可变长参数

    2、位置参数、关键字参数很好理解,关键是可变长参数经常能见到,但是一直没有搞懂是什么意思

    二、可变长参数

    1、一个星号:函数可以接收任意个数的参数,只需要在形参前面加一个*(星号),一个星号形参的函数会把多个位置参数值当成元祖的形式传入,也就是传入的多个参数值可以在函数内部进行元祖遍历

    def length_param(a, *args):  print("a=", a)  print("args=", args)  for arg in args:    print("arg=", arg)length_param("zim","this","is","a","good","thing")

    执行结果:

    2、两个星号:形参前面加两个*(星号),注意是两个星号哦,两个星号形参的函数会把关键字参数值当成字典的形式传入,在函数内部会把关键字参数当成字典在函数内部进行遍历

    def length_param(a, **kwargs):  print("a=", a)   print("kwargs=", kwargs)    for kwarg in kwargs.keys():     print("kwarg=", kwarg)length_param("zim",b="this",c="is",d="good")

    执行结果:

    3、一个星号和两个星号混合使用

    class Params:  def length_param(self,*args,**kwargs):    print("args=",args)    print("kwargs=",kwargs)    for arg in args:      print("arg=",arg)    for kwarg in kwargs.values():      print("kwarg=",kwarg)one = Params()one.length_param("sam","this","is","good","thing",b="you",c="love",d="me")

    执行结果:

    注意:传入可变长参数时,传入关键字参数的key一定不能有冒号,否则会报如下错误

    三、注意事项:

    函数调用时关键字参数必须在位置参数后面

    以上就是本次介绍的全部知识点内容,感谢大家的学习和对IIS7站长之家的支持。