为什么空字典在Python中是危险的默认值?[重复]

2020/11/30 18:51 · python ·  · 0评论

我将dict作为Python函数的可选参数的默认值,而pylint(使用Sublime包)告诉我这很危险。有人可以解释为什么会这样吗?并且是替代使用的更好的选择None吗?

仅当您的函数将修改参数时,这才是危险的。如果您修改默认参数,它将保留到下一次调用,因此您的“空”字典将开始包含除第一个调用以外的其他调用的值。

是的,None在这种情况下使用既安全又常规。

让我们看一个例子:

def f(value, key, hash={}):
    hash[value] = key
    return hash

print f('a', 1)
print f('b', 2)

您可能期望输出的内容:

{'a': 1}
{'b': 2}

但实际上输出:

{'a': 1}
{'a': 1, 'b': 2}
本文地址:http://python.askforanswer.com/weishenmekongzidianzaipythonzhongshiweixiandemorenzhizhongfu.html
文章标签: ,   ,   ,  
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!