python中的*args

发布时间 2023-05-21 22:05:27作者: 771293871

*args有两部分构成即 和 args ,其中∗ 的作用是打包参数(pack)和拆分参数(unpack)

*args的pack可以把多个参数打包成一个元组,它一般有两种格式:get_case(*args)或get_case(a,b,*args)

1.get_case(*args)格式:

例如:

def get_case(*args):
for casename in args:
print(casename)
print("args的种类:",type(args))
print("args的内容:",args)
get_case("a","b","c","d",3)
输出效果:

a
b
c
d
3
args的种类: <class 'tuple'>
args的内容: ('a', 'b', 'c', 'd', 3)

∗把调用get_case(*args)函数时接收到的多个参数a,b,c,d,3,打包成了元组 ('a', 'b', 'c', 'd', 3),然后赋值给形参args,函数中的for将元组中的值轮巡输出。

2.get_case(a,b,*args)格式:

例如:

def:
for casename in args:
print(casename)
print("case1的值:",case1)
print("case2的值:", case2)
print("args的类中:",type(args))
print("args的内容:",args)
get_case("a","b","c","d",3)
输出效果:

c
d
3
case1的值: a
case2的值: b
args的类中: <class 'tuple'>
args的内容: ('c', 'd', 3)

调用get_case(case1,case2,*args)  函数时,接收到的参数("a","b","c","d",3)中,第1和2个参数分别被形参case1和case2接收,剩余的参数被打包成了元组('c', 'd', 3)

总上所述可知∗的作用是:调用函数时,函数将接受到的参数,按顺序分配给函数形参,如果遇到带*的形参,那么就把还未分配出去的实参以元组形式打包(pack),分配给带*的形参。

最后 args名称仅是一个形参的写法,也可以写成其他的字符,但是建议使用约定俗成的写法args