顾名思义,Python中的默认参数就是你什么都不用输出,程序自动给你补上一个默认值,我们来看一下例子。

初始函数:没有设置默认值,
必须输入两个参数,不然会报错

>>def sum(num1,num2):
>>    hh = num1 +num2
>>    return hh
>>result = sum(3,4)
>>print(result)

7

变式一:将num2设置默认值为5
可以只输入一个参数,如果设置两个参数,就按输入的两个参数来运算。

>>def sum(num1,num2=5):
>>    hh = num1 +num2
>>    return hh
>>result = sum(4)
>>print(result)

9

注意:
默认值参数必须写在最后,就是说 num2=5 必须写后面,不然报错

易错点:默认参数必须是不可变类型 如str,()

  • 正常输出:
>>def add(s=[]):
>>    s.append('End')
>>    return s
>>print(add([1,2,3]))

[1, 2, 3, 'End']
  • 异常输出:
    默认参数s是一个变量,即[],从第二次调用函数后,每再调用函数一次,就记录一次上一次的值。
>>def add(s=[]):
>>    s.append('End')
>>    return s
>>print(add())
>>print(add())

['End']
['End', 'End']

调试:
用None或str这种不变类型来修改,因为不变类型一旦创建,对象内部数据就不能修改了。

>>def add(s=None):
>>    if s is None:
>>        s=[]
>>    s.append('End')
>>    return s
>>print(add())
>>print(add())

['End']
['End']