函数的参数
定义函数(参数):普通参数,默认参数,可变参数(可变位置参数,可变关键字参数),keyword-only 参数调用函数(传参):位置参数,关键字参数,参数结构(位置参数解构,关键字参数解构)普通参数 x,y:def add(x,y) return x + y默认参数 x=1:def inc(base,x =1):return base +xinc(3)4inc(3,2)5参数可以有默认值, 但当一个参数有默认值时,调用时如果不传递此参数,会使用默认值带默认值参数必须在不带默认值参数之后,否则会报错SyntaxErrordef inc(x=0,y):return x+y File “”, line 1 def inc(x= 0,y): ^SyntaxError: non-default argument follows default argument可变位置参数:定义参数时前面加一个*,表示这个参数是可变的,可以接受任意多个参数,这些参数构成一个元组,只能通过位置参数传递可变关键字参数:定义参数时,在前面加**,表示这个参数可变,可以接受任意多个参数,这些参数构成一个字典,只能通过关键字参数传递参数的混合使用:#位置参数可以和关键字参数一起使用#当位置可变参数和关键字可变参数一起使用时候,可变位置参数必须在前def fn(*args,**kwargs): print(args) print(kwargs)fn(1,2,3,x=4,y=5) (1,2,3) (1, 2, 3){‘y’: 5, ‘x’: 4}#普通参数可以和可变参数一起使用,但是传参的时候必须匹配def fn(x,y,*args,**kwargs): print(x) print(y) print(args) print(kwargs)fn(1,2,3,4,5,a=6,b=7)112(3, 4, 5){‘a’: 6, ‘b’: 7}#关键字可变参数不允许在普通参数之前def fn(**kwargs,x):print(x)#上面的方式定义会出错#默认参数可以在可变位置参数之前def fn(x=5,*args):print(x)pprint(args)#位置可变参数可以在普通参数之前,但是在位置可变参数之后的普通参数变成可keyword-only 参数。
2020-11-03
最新推荐文章于 2020-11-05 15:10:31 发布