在码代码时发现*号可以这样使用:
str = ["abcd", "abce", "abcf"]
st = "fwefwe"
print(*str)
print(*st)
输出:
abcd abce abcf
f w e f w e
原因:
其实只差一个*而已。*是python中一个赋值的技巧,叫做解包。
在定义函数时def func(*args, **kwargs),*代表不定个数的参数,以tuple的方式传入,**则是以dict的方式。在使用函数的时候,也可以有类似的方法,调用func(*args)函数时,相当于把一个元组args拆开,当成参数传进函数中,又叫参数解包。
下面是另一个案例:
# 参数解包:将整个list当做参数传给函数
def add_fn(a, b, c):
return a + b + c
list = [1, 2, 4]
sum = add_fn(*list)
print("参数解包:", sum)
与此相对的是参数打包,一般使用tuple进行打包:
1、散态传递参数
func(*arg)
2、打包传递参数
func( arg=tuple())
{
func_exe(*arg)
}
注意实际函数调用时对参数进行解包。
3、单个参数打包元组
args=(‘bob‘,)
原文:https://www.cnblogs.com/wodeboke-y/p/9097993.html