关于这一部分的官方文档——Special parameters,从这份官方文档中可以看出,函数参数有三种类型——1、关键字参数;2、位置参数;3、两种都可以的参数。如下
适用情况:官方文档中讲的很明白
举一个例子,如果我们定义函数如下:
def fun(*args, str):
for i in args:
print("tuple:", args)
print("str:", str)
fun("t1", "t2", "t3", str="str")
这个函数不会报错,但如果,下面这样调用的话,就会报错
def fun(*args, str):
for i in args:
print("tuple:", args)
print("str:", str)
fun("t1", "t2", "t3")
错误如下:
因为在*args后面的参数只能是关键字参数(原因很简单,不给关键字的话调用函数不知道最后一个是传递给元组(参数1)还是字符串(参数2)).