标签:toc name 接收 注意 UNC app 赋值 默认参数 调用函数
def self_max(x, y): # x,y就是形参
if x > y:
return x
else:
return y
print(self_max(2,6)) # 2,6就是实参
6
位置形参就是在函数定义阶段,按照从左到右的顺序依次定义的形参,称之为位置形参
?
位置实参就是在函数调用阶段,按照从左到右的顺序依次定义的实参,称之为位置实参
在调用函数时,按照key=value的形式为指定的参数传值,称为关键字实参
可以混用位置实参和关键字实参,但是位置实参必须在关键字实参的左边。
可以混用位置实参和关键字实参,但不能对一个形参重复赋值。
def self_max(x, y):
if x > y:
return x
else:
return y
res = self_max(y=2,x=6)
print(res)
6
特点:在定义阶段就已经被赋值,意味着在调用时可以不用为其赋值
注意:
def self_max(x, y=26):
if x > y:
return x
else:
return y
res = self_max(y=2,x=6)
print(res)
res = self_max(3)
print(res)
6
26
可变长参数是指在调用函数时,传入的参数个数可以不固定
函数调用无非两种方式,一种是位置实参,一种是关键字实参,因此形参也需要两种解决方式,以此来接收位置实参(*
)和关键字实参(**
)
形参中的*
会将溢出的位置实参全部接受,然后以元组的形式赋值给*
后的参数。
def func(x,*args):
print(x,args)
func(1,4,2)
1 (4, 2)
实参中的,会将中的参数循环取出,打散成位置实参。
def func(x,*args):
print(x,args)
func(*(1,2),4) # 将(1,2)打散为1,2传给x,y
1 (2, 4)
形参中的**
会将溢出的关键字实参全部接受,然后存储为字典的形式,再赋值给**
的参数
def wrapper(**kwargs):
print(kwargs)
wrapper(name='hades',age=27,weight=125)
{'name': 'hades', 'age': 27, 'weight': 125}
实参中的**
会将传入的字典打散成关键实参传给形参
def func(x,y,z):
print(x,y,z)
func(**{'y':4,'x':3,'z':5})
3 4 5
标签:toc name 接收 注意 UNC app 赋值 默认参数 调用函数
原文地址:https://www.cnblogs.com/Hades123/p/10997835.html