Python:函数参数默认值

Lasted 2020-01-30 12:38:06

Python 函数可以指定一个或多个参数的默认值,这样创建的函数,可以使用比定义更少的参数调用。

def func(first, second='second'):
  print(first, ':', second)

func('first')
first : second

默认值在函数定义时计算,下面案例会输出 2:

i = 2
def f(arg=i):
  print(arg)

i = 3
f()
2

默认值只会执行一次,如果默认值为可变对象(列表、字典等)后续调用多次需要特别注意。

def f(a, L=[]):
  L.append(a)
  return L

print(f(1))
print(f(2))
print(f(3))
[1]
[1, 2]
[1, 2, 3]
def f(a, L=None):
  if L is None:
    L = []
  L.append(a)
  return L

print(f(1))
print(f(2))
print(f(3))
[1]
[2]
[3]