从方法返回的Python Dict如果未分配,则具有相同的ID

2024-04-26 14:48:48 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

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


Tags: 对象代码idreturndef语句dictd2