📅  最后修改于: 2023-12-03 15:24:19.535000             🧑  作者: Mango
在 Python 中,我们可以通过使用默认参数值、可变参数以及关键字参数等方式,实现函数输入可选的功能。本文将为大家详细介绍这些方法的使用。
默认参数值是指在定义函数时,为参数设置默认值。当函数被调用时,如果没有传入相应参数,则使用默认值进行计算。默认参数值的语法是在函数定义时,在参数列表的后面为参数赋一个默认值。
如下例所示:
def print_info(name, age=18):
print("Name:", name)
print("Age:", age)
print_info("Jack") # Name: Jack, Age: 18
print_info("Lily", 20) # Name: Lily, Age: 20
在上例中,函数 print_info
的第二个参数 age
的默认值设置为 18
,当函数被调用时,如果没有传入 age
参数,则使用默认值 18
。
可变参数是指在调用函数时,可以传入任意个参数,这些参数会被封装成一个元组或列表,传给函数。可变参数的语法是在参数前面加上 *
,表示接受任意个参数。
如下例所示:
def sum_numbers(*numbers):
result = 0
for number in numbers:
result += number
return result
print(sum_numbers(1, 2, 3, 4, 5)) # 15
print(sum_numbers(1, 3, 5, 7, 9)) # 25
在上例中,sum_numbers
函数使用了可变参数 *numbers
,接受任意个参数。在函数内部,使用 for
循环遍历参数列表 numbers
,计算它们的和并返回结果。
关键字参数是指在调用函数时,可以传入任意个参数,这些参数会被封装成一个字典,传给函数。关键字参数的语法是在参数前面加上 **
,表示接受任意个关键字参数。
如下例所示:
def print_info(name, **kwargs):
print("Name:", name)
for key, value in kwargs.items():
print(f"{key.capitalize()}: {value}")
print_info("Jack", age=20, gender="Male", phone="1234567890")
# Name: Jack
# Age: 20
# Gender: Male
# Phone: 1234567890
在上例中,print_info
函数使用了关键字参数 **kwargs
,接受任意个关键字参数。在函数内部,使用 for
循环遍历关键字参数字典 kwargs
,打印每个参数的名称和值。
通过以上三种方式,我们可以很方便地实现函数输入可选的功能,在编写有大量可选参数的函数时,可以极大地减少代码量,同时也方便了函数的调用,降低了程序的复杂度。