一、默认参数是什么?
参数是函数接受的输入值。在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]
四、总结
默认参数可以使函数调用更加简单方便,使函数更加灵活。需要注意的是,使用默认参数有一些需要注意的问题。