Python默认参数函数的使用详解
发布时间:2023-07-04 04:27:07
Python中的函数可以使用默认参数,这些参数在函数定义时就给定了默认值,当函数被调用时,如果没有给定这些参数的值,则使用默认值。默认参数的使用可以让函数更加灵活和方便使用。
定义默认参数函数的方式很简单,只需要在函数定义时,在参数后加上赋值符号(=),然后给定默认值即可。例如:
def greet(name='Alice'):
print('Hello', name)
在上面的例子中,函数greet()有一个默认参数name,当函数被调用时,如果没有给定name的值,则使用默认值"Alice"。如果给定了name的值,则使用给定的值。
默认参数函数的使用有以下几个要点:
1. 默认参数通常放在参数列表的最后,以确保在调用函数时不用给定默认参数之后的参数值。
2. 默认参数的值只会在函数定义时计算一次,并且会在每次函数调用时共享,默认参数的值可以是任意有效的表达式。
3. 默认参数的值可以是任意对象,例如字符串、数字、列表、字典等。
4. 如果默认参数的值是可变对象(如列表),则每次函数调用时会共享该对象,这可能导致一些意外的结果。
下面通过一些例子来详细说明默认参数函数的使用:
# 默认参数函数的定义
def greet(name='Alice', message='Hello'):
print(message, name)
# 不给定任何参数值,使用默认参数
greet() # 输出:Hello Alice
greet('Bob') # 输出:Hello Bob
# 给定部分参数值
greet(message='Hi') # 输出:Hi Alice
greet('Bob', 'Hi') # 输出:Hi Bob
# 默认参数值只在函数定义时计算一次
def increment(val, step=1):
val += step
print(val)
increment(10) # 输出:11
increment(10) # 输出:11
# 默认参数值可以是任意对象
def add(a=0, b=0, c=[]):
c.append(a + b)
print(c)
add(1, 2) # 输出:[3]
add(3, 4) # 输出:[3, 7]
# 默认参数值是可变对象,会导致共享结果
def add(a=0, b=0, c=None):
if c is None:
c = []
c.append(a + b)
print(c)
add(1, 2) # 输出:[3]
add(3, 4) # 输出:[7]
通过上面的例子,可以看到默认参数函数的使用非常简单和灵活。使用默认参数可以让函数在调用时更加方便,可以根据实际需求给定参数值,也可以使用默认值。同时,需要注意默认参数值只会在函数定义时计算一次,并且对于可变对象,默认参数值会在每次函数调用时共享。
