Python函数的默认参数设置
Python函数的默认参数是指在函数定义时设置的参数,它们可以在调用函数时省略,如果省略,则会使用默认值。
在Python中,我们可以给一个函数定义一个默认值,这就是默认参数。默认参数的好处是可以让我们在定义函数的时候提供一个默认的参数,这样在使用函数的时候,如果没有给这个参数传值,那么函数就会使用该参数的默认值。
默认参数可以是任何类型的数值、字符串、列表、字典等等,甚至可以是其他函数的返回值。在 Python 中定义带有默认值的参数很简单,只需在参数列表后面用等号 = 定义参数的默认值即可。
下面是一些例子:
# 定义函数时,给参数 count 指定了默认值 0
def display(name, count=0):
print("{} 已经显示了 {} 次".format(name, count))
# 调用 display 函数
display("Hello World") #Hello World 已经显示了 0 次
display("Hello World", count=1) #Hello World 已经显示了 1 次
在上面的例子中,当我们不给 count 参数传递值时,默认值为 0。我们只需在调用函数的时候,指定 count 的值即可。
Python中还有一个特性,当我们给带有默认参数的函数传递参数时,Python会将传入的参数绑定到参数列表的左边。这意味着,如果我们只传递给函数一个参数,那么这个参数会被绑定到函数的第一个参数上。
下面是一个例子:
def add(a, b=10):
return a + b
# 调用 add 函数
print(add(3)) #13
这个例子中,我们只传递给函数一个参数,Python默认把它绑定到了 a 参数上,而 b 参数的默认值为 10。
注意,如果我们给函数传递的参数数量少于函数定义时的参数数量,Python会抛出 TypeError 异常。因此,如果想要调用带有默认参数的函数并且不像传递某些参数,我们需要传递 None 作为占位符,以表明已省略的参数。
下面是一个例子:
def add(a, b=10):
if b == None:
return a
else:
return a + b
# 调用 add 函数
print(add(3)) #3
在这个例子中,我们传递给函数的参数只有一个 a,此时 b 参数使用默认值 10。
另外,在 Python 中,如果默认参数是可变的(例如,列表或字典),它们将在多个函数调用之间共享。这意味着,如果我们修改默认参数,则在这个参数上进行修改的所有函数调用都将受到影响。
例如:
def myfunc(a, b=[]):
b.append(a)
print(b)
# 调用 myfunc 函数
myfunc(1) #[1]
myfunc(2) #[1, 2]
myfunc(3) #[1, 2, 3]
在这个函数中,如果我们没有给第二个参数 b 传递值,则使用默认的空列表。 b 的值将在函数的多次调用之间共享,因此,如果我们在函数中修改 b 的值,则所有之后调用这个函数的函数都将看到修改后的值。
总结:
Python函数的默认参数是指在函数定义时设置的参数,它们可以在调用函数时省略,如果省略,则会使用默认值。
默认参数的好处是可以让我们在定义函数的时候提供一个默认的参数,这样在使用函数的时候,如果没有给这个参数传值,那么函数就会使用该参数的默认值。
如果默认参数是可变的,它们将在多个函数调用之间共享。因此,在修改默认参数时需要小心。
