Python中如何定义默认参数值的函数?
发布时间:2023-06-26 01:20:00
在Python中,定义默认参数值的函数可以是普通参数和默认值参数混合在一起的形式。函数在定义时可以在参数列表中为某些参数指定默认值,这些参数就被称为默认参数。当调用函数时提供了部分参数时,默认参数会补充缺失的参数。下面我们来具体了解一下Python中如何定义默认参数值的函数。
定义默认参数值的函数的基本语法如下:
def function_name(param1, param2=default_value, param3=default_value):
# 函数体
其中,param1是必须传递的参数,而param2和param3都有默认值。如果调用该函数时不指定param2和param3的值,则函数使用其默认值。如果指定param2和param3的值,则函数使用传入的值。例如:
def print_info(name, age=18, gender='male'):
print("name:" + name)
print("age:" + str(age))
print("gender:" + gender)
# 不指定可选参数
print_info("Tom")
# 指定可选参数age
print_info("Jerry", 21)
# 指定可选参数age和gender
print_info("Alice", 20, "female")
输出结果为:
name:Tom age:18 gender:male name:Jerry age:21 gender:male name:Alice age:20 gender:female
在上面的示例中,我们定义了一个print_info函数,其中name是必须传递的参数,而age和gender是默认参数。当调用函数时,如果只传递了name参数,则age和gender使用默认值;如果传递了age参数,则gender使用默认值;如果同时传递age和gender参数,则使用传递的值。
需要注意的是,如果默认参数是可改变对象(例如列表、字典等),那么在函数内部改变了该对象的值,会影响到函数外部调用该对象的值。下面是一个示例:
def func(a, b=[]):
b.append(a)
return b
print(func(1)) # [1]
print(func(2)) # [1, 2],而不是[2]
print(func(3)) # [1, 2, 3],而不是[3]
在上面的示例中,我们定义了一个函数func,其中b是可选参数,并且默认值为一个空列表[]。当调用函数时,如果不传递b参数,则使用默认值[]。而每次调用函数时,都会向b列表中添加一个元素a。由于b列表是可改变对象,因此在函数内部修改该对象的值会影响到函数外部调用该对象的值。因此,当我们依次调用func(1)、func(2)和func(3)时,返回列表的值每次都包含之前的元素。
在实际应用中,要注意使用默认参数时要慎重,尤其是当默认参数是可改变对象时。如果要多次调用函数时,需要特别注意默认参数的值。
