gpt4 book ai didi

Python 默认参数混淆

转载 作者:太空狗 更新时间:2023-10-30 01:19:53 25 4
gpt4 key购买 nike

我刚开始学习 Python,我对这个例子感到困惑:

def append_to(element, to=None):
if to is None:
to = []
to.append(element)
return to

如果to被初始化了一次,那么to第二次被调用时不是None吗?我知道上面的代码有效,但无法理解这种“初始化一次”的描述。

最佳答案

def append_to(element, to=None):
to = ...

to 在这里成为一个局部变量并被分配给一个列表,如果您不将返回值分配给另一个变量,则会被释放。

如果您希望 在后续调用 append_to 时保持事件状态,您应该这样做:

def append_to(element, to=[]):
to.append(element)
return to

演示:

>>> lst = append_to(5)
>>> append_to(6)
>>> append_to(7)
>>> print lst
[5, 6, 7]

关于Python 默认参数混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43457258/

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