从Method返回的Python Dict具有相同的ID(如果未分配)

时间:2018-03-05 18:37:00

标签: python python-3.x return-value return-type mutable

我需要进一步澄清python在return语句中使用时如何处理可变对象。

def dict_return():
    d = {'a': "1234"}
    return d


d1 = dict_return()
print("d1 ID: ", id(d1))
d2 = dict_return()
print("d2 ID: ", id(d2))
print("Dict Return ID1: ", id(dict_return()))
print("Dict Return ID2: ", id(dict_return()))

我上面的代码示例输出如下:

d1 ID:  6017792
d2 ID:  6018128
Dict Return ID1:  33645696
Dict Return ID2:  33645696

我使用的是Python V3.6.3,可以看出最后两行具有相同的ID但是当我将返回的dict分配给变量时,会创建新的变量。如果dict在Python中是可变的,我想要更清楚地解释为什么会发生这种情况。

0 个答案:

没有答案