• 技术文章 >Python技术 >Python基础教程

    python不定长参数如何调用函数?

    小妮浅浅小妮浅浅2020-12-07 15:45:18原创2449



    我们讲了这么多的参数,多多少少都会有一些限制的地方。小编在学习的时候,发现了一个新的参数很有意思,在长度、类型上没有进行固定,跟它的名字非常相符,那就是不定长参数。那么这类参数在调用函数上会有什么不同吗?带着这个问题,我们一起来学习在python中使用不定长参数调用函数。

    函数的不定长参数包含*args和**kwargs,完整实例如下:

    def function_print(*args,**kwargs): # 传递不定长参数,即参数个数不固定
     print(args)
     print(kwargs)
     
    function_print()

    输出结果:

    ()
    {}

    代码分析:由输出结果可以看出来,第一个形参*args 是元组tuple类型,第二个形参**kwargs是字典dict类型。

    对于任意函数,都可以通过func_name(*args, **kw)的形式来进行调用,其中 args 是一个已经获得的列表或者元组,而 kw 是一个已经获得的字典。列表传入会按顺序对必输参数赋值,多余的参数会当成可变参数传入,而字典传入会根据 key 来匹配所有参数。如:

    def test1(a, b, c=0, *args, **kwargs):
        print('a =', a, 'b =', b, 'c =', c, 'args =', args, 'kw =', kwargs)
     
    def test2(a, b, c=0, *args, d, **kwargs):
        print('a =', a, 'b =', b, 'c =', c, 'd =', d, 'args=', args, 'kw =', kwargs)
     
    # 定义一个元组和字典用作参数传入
    args = (1, 2, 3, 4)
    kw = {'d': 99, 'x': '#'}
     
    test1(*args, **kw)
    # a = 1 b = 2 c = 3 args = (4,) kw = {'d': 99, 'x': '#'}
    test2(*args, **kw)
    a = 1 b = 2 c = 3 d = 99 args= (4,) kw = {'x': '#'}

    注意函数传参的三种形式:

    1.普通传参

    2.缺省参数,如果外部没有为缺省参数传递实参,形参等于默认值

    3.注意不定长参数的拆包,普通实参打包为元组tuple类型,关键字参数打包为字典dict类型


    以上就是不定长参数调用函数的方法了,相信小伙伴们都对这种长度、类型不限定的参数非常感兴趣,学会的一起运行代码,看看是否跟小编的结果一致呢~

    专题推荐:python不定长参数
    上一篇:python缺省函数的定义位置可以变化吗? 下一篇:python序列如何用reversed逆置?

    相关文章推荐

    • python如何传入不定长参数• python不定长参数怎么进行传递• 如何使用python函数的不定长参数?

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网