位置参数
先定义一个乘法公式的函数:
def func(x,y):
"""定义位置参数"""
print("{} * {} = {}".format(x,y,x*y))
func(1,2)
对于func(x,y)函数,参数x和y都是一个位置参数。
当我们调用func() 函数时,必须传入x和y的实参。默认值参数
- 定义函数时候为形式参数设置了默认值
- 通过格式如下:
def 函数名(...,形参名=默认值):
函数体
下面用具体例子进来理解
# 乘法公式
def func(x,y=1):
"""定义默认值参数"""
print('{} * {} = {}'.format(x,y,x*y))
# 使用 __defaults__ 查看函数所有的默认值
print(func.__defaults__)
# 函数由两个默认参数,给第一个默认函数传递实参,第二个函数使用原来的实参1
func(1)
# 如果给第二个参数也传递实参,则不再使用默认值man
func(1,2)
输出
(1,)
1 * 1 = 1
1 * 2 = 2
关键参数
- 关键参数主要指调用函数时的参数传递方式,与函数定义无关,
- 通过关键参数可以按照参数名字传递值,实参顺序可以和形式顺序不一致。
def 函数名(参数名1=参数值):
函数体
举例
# 乘法公式
def func(x,y):
"""定义关键参数"""
print('{} * {} = {}'.format(x,y,x*y))
# 使用 __defaults__ 查看函数所有的默认值
print(func.__defaults__)
# 通过顺序即可给形式传递值
func(x=1,y=2)
# 不用通过顺序即可给形式传递值
func(y=2,x=1)
可变长度参数
- 有两种形式,分别是*args,**kwargs
- *args用来接收任意多个实参并将其放在一个元祖中。
- **kwargs接收类似于关键参数一样显式赋值形式的多个实参并将其放入字典中。
def func(*args):
"""定义不定长度参数"""
print(args)
func(1,2,3,4,5)
def func(**kwargs):
"""定义不变长度的关键参数"""
for item in kwargs.items():
print(item)
func(a=1,b=2,c=3)