gpt4 book ai didi

python - 函数中的可选参数及其可变的默认值

转载 作者:IT老高 更新时间:2023-10-28 21:49:35 25 4
gpt4 key购买 nike

Possible Duplicate:
“Least Astonishment” in Python: The Mutable Default Argument

我对可选参数在 Python 函数/方法中的工作方式有点困惑。

我有以下代码块:

>>> def F(a, b=[]):
... b.append(a)
... return b
...
>>> F(0)
[0]
>>> F(1)
[0, 1]
>>>

为什么 F(1) 返回 [0, 1] 而不是 [1]

我的意思是,里面发生了什么

最佳答案

几年前来自 PyCon 的好文档 - Default parameter values explained .但基本上,由于列表是可变对象,并且关键字参数是在函数定义时计算的,所以每次调用函数时,都会得到相同的默认值。

正确的做法是:

def F(a, b=None):
if b is None:
b = []
b.append(a)
return b

关于python - 函数中的可选参数及其可变的默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6435793/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com