一、默认参数是什么?
参数是函数接受的输入值。在Python函数中,有时候我们需要为参数提供默认值,这些参数就是默认参数。在函数定义时,我们可以为参数设置默认值,当调用函数时如果没有给这些参数赋值,就使用默认值。
下面是默认参数的定义方式:
def funcName(a,b=0,c=1):
#代码部分
在以上代码中,b的默认值为0,c的默认值为1。如果在调用函数时不指定b和c的值,则会使用它们的默认值。
二、默认参数的用途是什么?
默认参数有许多用途,下面我们来介绍一些:
1、简化函数调用
对于那些以相同的参数值调用的函数调用,使用默认参数值可以简化代码。
# 不使用默认参数的代码
def greet(name, msg):
print("Hello", name + ', ' + msg)
greet('John', 'Good morning!')
greet('Kate', 'Good morning!')
greet('Tom', 'Good morning!')
# 使用默认参数的代码
def greet(name, msg='Good morning!'):
print("Hello", name + ', ' + msg)
greet('John')
greet('Kate')
greet('Tom')
2、使函数更加灵活
使用默认参数可以使函数能够处理更多情况。
# 不使用默认参数的代码
def add_numbers(x, y, z=None):
if z:
return x + y + z
else:
return x + y
result = add_numbers(2, 3)
# result = 5
result = add_numbers(2, 3, 4)
# result = 9
# 使用默认参数的代码
def add_numbers(x, y, z=0):
return x + y + z
result = add_numbers(2, 3)
# result = 5
result = add_numbers(2, 3, 4)
# result = 9
三、需要注意什么?
使用默认参数需要注意以下几点:
1、默认参数只能放在参数列表的末尾
当定义函数时,参数列表中有默认参数时,这些参数只能放在参数列表的末尾。这样做是因为Python解释器是按照参数的位置来对参数进行传递的。
# 报错的代码
def funcName(a=0,b,c=1):
#代码部分
# 正确的代码
def funcName(a,b=0,c=1):
#代码部分
2、默认参数只会在函数定义时被赋值一次
Python中的函数默认参数在函数定义时就被赋值了。因此,如果默认参数是可变的对象(如一个列表或字典),那么这个对象在多次函数调用之间是可变的。
# 很可能会出现意外结果的代码
def funcName(a,b=[]):
b.append(a)
return b
print(funcName(1))
# 输出[1]
print(funcName(2))
# 输出[1,2]
print(funcName(3))
# 输出[1,2,3]
# 正确的代码
def funcName(a,b=None):
if b is None:
b=[]
b.append(a)
return b
print(funcName(1))
# 输出[1]
print(funcName(2))
# 输出[2]
print(funcName(3))
# 输出[3]
四、总结
默认参数可以使函数调用更加简单方便,使函数更加灵活。需要注意的是,使用默认参数有一些需要注意的问题。
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/303756.html
微信扫一扫
支付宝扫一扫