gpt4 book ai didi

python - 避免空列表的默认参数的pythonic方法是什么?

转载 作者:IT老高 更新时间:2023-10-28 21:12:05 34 4
gpt4 key购买 nike

有时,有一个空列表的默认参数似乎很自然。然而Python produces unexpected behavior in these situations .

例如,如果我有一个函数:

def my_func(working_list=[]):
working_list.append("a")
print(working_list)

第一次调用时,默认会起作用,但之后的调用会更新现有列表(每次调用一个 "a")并打印更新的版本。

那么,获得我想要的行为的 Pythonic 方法是什么(每次调用都有一个新列表)?

最佳答案

def my_func(working_list=None):
if working_list is None:
working_list = []

# alternative:
# working_list = [] if working_list is None else working_list

working_list.append("a")
print(working_list)

The docs说你应该使用 None 作为默认值并明确地使用 test for it在函数体中。

关于python - 避免空列表的默认参数的pythonic方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/366422/

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