我需要进一步澄清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中是可变的,我想要更清楚地解释为什么会发生这种情况。