<分区> 分区>
这个在Python Tutorial里面有讲到,但是我还是不太明白为什么Python会有这种风格。是纯粹的约定,还是有一些解释为什么 Python 具有以下关于默认参数的样式:
我的理解是 Python 更喜欢 something=None 而不是 something=[] 作为函数的默认参数。但是……为什么不使用 something=[]?当然这是其他语言的惯例,比如 C
举个例子,这两个例子,是等价的
def function(arr, L=[]):
L.append(arr)
return L
和
def function(arr, L=None):
if L is None:
L = []
L.append(arr)
return L
我的理解是,第一个是 Python 的“不正确的样式”。为什么?
编辑:啊,我终于明白了。我在上面是不正确的:这两个功能是不等价的。默认参数在定义函数时计算一次,而不是每次调用函数时!
