【python基础】*args与**kwargs动态参数的用法与区别

1.直接看简单的例子:

#encoding:utf-8
#@Time:2019/7/6 23:50
#@Author:sunny

#args:元祖
#kwargs:字典

def A(*args):
    print("args的类型:",type(args))
    print(args)

a=A(1,2,3,4)

def B(**kwargs):
    print("kwargs的类型:",type(kwargs))
    print(kwargs)

b=B(a=1,b=2,c=4)


def fun(a=999,*args,**kwargs):
    print("args的值为:",args)
    print("kwargs的值为:",kwargs)

fun(55,66,77,name="xiaoxiao",girl=18)

打印输出:

args的类型: <class 'tuple'>
(1, 2, 3, 4)
kwargs的类型: <class 'dict'>
{'a': 1, 'b': 2, 'c': 4}
args的值为: (66, 77)
kwargs的值为: {'name': 'xiaoxiao', 'girl': 18}

由上可知:

  • 普通参数,即在调用函数时必须按照准确的顺序来进行参数传递。
  • 默认参数,即参数含有默认值,在调用函数时可以进行参数传递,若没有进行参数传递则使用默认值,要注意,默认参数必须在普通参数的后面(否则解释器无法解析)。
  • 元组参数,即 *args,参数存储在一个元组中,长度没有限制,必须位于普通参数和默认参数之后。
  • 字典参数,即 **kwargs,参数存储在一个字典中,必须位于参数列表的最后面
posted @ 2019-07-07 08:05  做一只热爱生活的小透明  阅读(117)  评论(0)    收藏  举报