函数参数的应用
Posted hades123
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了函数参数的应用相关的知识,希望对你有一定的参考价值。
函数参数的应用
形参和实参
- 形参就是函数在定义的时候,括号里的参数称为形式参数,本质就是变量名
- 实参就是函数在调用的时候输入的参数,本质就是变量值
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
可变长参数
可变长参数是指在调用函数时,传入的参数个数可以不固定
函数调用无非两种方式,一种是位置实参,一种是关键字实参,因此形参也需要两种解决方式,以此来接收位置实参(*
)和关键字实参(**
)
可变长之形参*
形参中的*
会将溢出的位置实参全部接受,然后以元组的形式赋值给*
后的参数。
- 注意:*后的参数名约定俗成为args
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)
可变长形参之**
形参中的**
会将溢出的关键字实参全部接受,然后存储为字典的形式,再赋值给**
的参数
- 注意:**后的参数约定俗成为kwargs
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
以上是关于函数参数的应用的主要内容,如果未能解决你的问题,请参考以下文章