Skip to main content
 首页 » 编程设计

python之了解 Python 风格,函数的默认参数

2025年05月04日13shihaiming

<分区>

这个在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 的“不正确的样式”。为什么?

编辑:啊,我终于明白了。我在上面是不正确的:这两个功能是不等价的。默认参数在定义函数时计算一次,而不是每次调用函数时!