函数的参数传递是指将实际参数传递给形式参数的过程,根据不同的传递形式,函数的参数可分为位置参数,关键字参数,默认值参数,不定长参数。
一 位置参数
调用函数时,编译器会将函数的实际参数按照位置顺序依次传递给形式参数,依次类推。
代码举例如下:
def weather(today, temp, air_quality):
print('*'*13)
print(f"日期:{today}")
print(f"温度:{temp}")
print(f"空气质量:{air_quality}")
print('*' * 13)
weather(4.28,18,"好")
结果如下:
*************
日期:4.28
温度:18
空气质量:好
*************
二 关键字参数
关键字参数传递通过“形式参数=实际参数”的格式将实际参数与形式参数相关联,根据形式参数的名称进行参数传递。
代码举例如下:
def weather(today, temp, air_quality):
print('*'*13)
print(f"日期:{today}")
print(f"温度:{temp}")
print(f"空气质量:{air_quality}")
print('*' * 13)
weather(today=4.28,temp=18,air_quality="好")
结果如下:
*************
日期:4.28
温度:18
空气质量:好
*************
三 默认参数
定义参数时可以指定形式参数的默认值,调用函数时,若没有给带有默认值的形式参数传值,则直接使用参数的默认值;若给带有默认值的形参传值,则实际参数的值会覆盖默认值。
举例代码如下:
def weather(today, temp, air_quality="优良"):
print('*'*13)
print(f"日期:{today}")
print(f"温度:{temp}")
print(f"空气质量:{air_quality}")
print('*' * 13)
weather(4.28,20)#形参使用默认值
weather(today=4.29,temp=18,air_quality="好")#形参使用传入值
运行结果:
*************
日期:4.28
温度:20
空气质量:优良
*************
*************
日期:4.29
温度:18
空气质量:好
*************
四 不定长参数
若要传入函数中的参数的个数不确定,可以使用不定长参数。不定长参数也称可变参数,此种参数接收参数的数量可以任意改变。
1 *args
不定长参数*args用于接收不定数量的位置参数,调用函数时传入的所有参数被*args接收后以元组形式保存。
举例代码如下:
def weather(*args):
print(args)
weather(1,2,3,4,5,6,'a','b','c')
运行结果如下:
(1, 2, 3, 4, 5, 6, 'a', 'b', 'c')
2 **kwargs
不定长参数**kwargs用于接收不定数量的关键字的关键字参数,调用函数时传入的所有参数被**kwargs接收后以字典形式保存。
举例代码如下:
def weather(**kwargs):
print(kwargs)
weather(a=1,b=2,c=3)
运行结果如下:
{'a': 1, 'b': 2, 'c': 3}