Python 为什么函数参数的默认值(空列表)是静态的?
代码: 输出:Python 为什么函数参数的默认值(空列表)是静态的?,python,Python,代码: 输出: def func(a=[]): a.append(1) print(a) func() func() func() 我以为每次调用func时都会重新分配默认值列表,答案是: [1] [1, 1] [1, 1, 1] 您说您“认为每次调用func时都会重新分配默认值列表。”您认为错误。如果您正在学习Python,您应该在某个时候完成。这是: 默认值仅计算一次。这会使情况有所不同 默认为可变对象,如列表、字典或 大多数类的实例 有关详细信息,请阅读本教程。对此已
def func(a=[]):
a.append(1)
print(a)
func()
func()
func()
我以为每次调用func
时都会重新分配默认值列表,答案是:
[1]
[1, 1]
[1, 1, 1]
您说您“认为每次调用func时都会重新分配默认值列表。”您认为错误。如果您正在学习Python,您应该在某个时候完成。这是:
默认值仅计算一次。这会使情况有所不同
默认为可变对象,如列表、字典或
大多数类的实例
有关详细信息,请阅读本教程。对此已经进行了大量讨论
[1]
[1]
[1]