空字典作为默认函数参数

时间:2017-12-28 06:16:17

标签: python default-value

假设我定义了一个函数

def fun(x, dic = {}):
    dic[x] = x
    return dic

并将此函数放在一个四循环中,以便我有

lst = [0, 1, 2]

for i in range(len(lst)):
    print fun(lst[i])

四个循环输出

{0: 0}
{0: 0, 1: 1}
{0: 0, 1: 1, 2: 2}

这似乎意味着' dic'未重置为默认值' {}'在循环的每次迭代中。但请注意,如果我改为运行四个循环

for i in range(len(lst)):
    print fun(lst[i], dic = {})

我得到了相应的输出'

{0: 0}
{1: 1}
{2: 2}

我希望有人可以解释为什么' dic'没有重置,如果你知道如何在四循环中设置默认参数。

0 个答案:

没有答案