python参数分为以下几类:

  1. 普通参数
  2. 默认参数
  3. 关键字参数
  4. 收集参数
def func(a):
    print(a)
    return None
a = "hahaha"
func(a)

输出结果

hahaha

2.默认参数
指的是形参带有默认值
如果函数调用时没有相应实参赋值,则使用默认值

def stu(name, age, gender = "male"):
    print("i am  %s, %d old, gender is %s"%(name,age,gender))
name = "x"
age = 18
stu(name, age)

输出结果:

i am  x, 18 old, gender is male

我们传给函数stu的参数只有name和age,对应形参的name和age,然后输出时gender使用了我们赋给它的默认值
3.关键字参数
指的是函数调用时的实参,在调用时给参数命名(注意,实参列表中的名字和形参列表中的名字得一致)

def stu(name, age, gender):
    print("i am %s, %d old, gender is %s"%(name, age, gender))
stu( age = 18, name = "A", gender = "male")

输出结果

i am A, 18 old, gender is male

可以看到,实参和形参的列表并没有对应上,但是我们输出的结果仍然是我们想要的,所以关键字参数的好处就在这:可以指定初始化参数,并且不用担心实参的顺序(我个人喜欢用这种写法)
4.收集参数
把没有位置,不能和形参位置对应的实参,放入一个特定的参数中,这个参数叫收集参数
eg1:

def stu(*args):
    print("i am %s, %d old, gender is %s"%(args))
name = "s"
age = 18
gender = "male"
stu(name, age, gender)

输出结果

i am s, 18 old, gender is male

我们可以看到,输出结果是我们想要的,如果我们调换一下实参顺序呢?
改为:stu(name, gender, age) 这时就会报错了,因为参数顺序和格式化输出符的顺序不一致,第二个%d应该输入的是int,结果输入了string,导致了报错
注意:使用收集参数时,收集参数变量名前要有一个*来声明这个参数是一个收集参数