动态语言好难啊。记一下重点。
【可变参数】可变参数使用 *p 来定义,这时候 p 是一个 tuple。传入的时候可以直接传入 f(1,2,3) 也可以使用 f(*tuple/list) 传入一个可变列表。
【关键字参数】关键字参数使用 **p 来定义,这时候 p 是一个 dict。传入的时候可以直接传入 f(a=1,b=2) 也可以使用 f(**dict) 传入一个 dict。
关键字参数在定义时的 key 可以给定:f(*,a,b) ,此时 f 函数里可以传入两个 key 名为 'a' 'b' 的参数。在调用时,也必须带上 key 名。
例:
def student(name,ID,*,class,city)
print(name,ID,class,city)
student('Daming',001,class='14',city='ZZ')
Daming,001,14,ZZ