python里面的*args和**kwargs

 时间:2026-02-16 18:01:55

1、*args和**kwargs代表的是变量, 变量前面的 *(星号)才是必须的. 也可以写成*v和**vs;写成*args 和**kwargs只是一个常用的书写方式。首先看看*args;

一个星号*的作用是将非键值对的(tuple,list)元素进行unpack,得到的是一个例元组如:

def myargs(x,*args):    print(x)    print(args)myargs(1,2,2)

输出:

1

(2, 2)

python里面的*args和**kwargs

2、然后我们看看 **kwargs,**kwargs传入的必须是键值对

def mykwargs(x,**kwargs):    print(x)    print(kwargs)mykwargs(2,3)

如上 如果我们这样传入的话会报错,

 File "C:/Users/king/PycharmProjects/sellmall/seo/mytest.py", line 11, in <module>

    mykwargs(2,3)

TypeError: mykwargs() takes exactly 1 argument (2 given)

因为**kwargs传入的必须是键值对

def mykwargs(x,**kwargs):    print(x)    print(kwargs)mykwargs(2,tr=3)

输出:

2

{'tr': 3}

python里面的*args和**kwargs

python里面的*args和**kwargs

3、接下来我们把*args 和**kwargs一起使用来看看传入参数

def mya(x,y,*args,**kwargs):    print(x)    print(args)    print(kwargs)mya(1,2,d=22,3)

如上这样传入也会报错,当遇到键值时候,后面的参数将被视为全是键值对的,这里args则传入空值;

def mya(x,y,*args,**kwargs):    print(x)    print(args)    print(kwargs)mya(1,2,d=22,z=11)

如上输出:

1

()传入空值

{'z': 11, 'd': 22}

下面我们都传入

def mya(x,y,*args,**kwargs):    print(x)

   print(y)

   print(args)    print(kwargs)mya(1,2,8,9,0,d=22,z=11)

输出:

1

2

(8, 9, 0)

{'z': 11, 'd': 22}

python里面的*args和**kwargs

python里面的*args和**kwargs

4、*args和**kwargs虽然都是变量,但是少一个*区别还是比较大的,在传入参数时候,我们一定要注意数据类型。如果是字典类型的只能用**kwargs

python里面的*args和**kwargs

  • word怎么显示批注
  • word批注怎么显示出来
  • 新罗马字体在word哪里
  • word文档批注怎么看
  • word里面怎么将所有字母一次修改成新罗马字体?
  • 热门搜索
    湖北的旅游景点 大连到云南旅游报价 珲春旅游 山西五台山旅游攻略 蜈支洲岛旅游攻略 美国旅游签证新政策 兵马俑旅游攻略 新加坡旅游地图 佛冈旅游 旅游车