可变数据类型作为初始化形参 / Mutable Parameter as Init Formal-para
由于在Python中,没有类似C语言的static静态参数,因此当一个函数需要一个只初始化一次的参数时,通常会在函数外部进行初始化操作,较为不便。
但是在Python中,可以利用可变参数作为函数的形参默认值来实现这一功能,
完整代码
1 # n is mutable 2 def foo_1(x, n=[]): 3 print(id(n)) 4 n += [x] 5 print(id(n)) 6 print(n) 7 8 foo_1(2) 9 foo_1(3) 10 foo_1(5) 11 12 print(20*'-') 13 # n is immutable 14 def foo_2(x, n=()): 15 print(id(n)) 16 n += (x, ) 17 print(id(n)) 18 print(n) 19 20 foo_2(2) 21 foo_2(3) 22 foo_2(5)