首页 > 解决方案 > 在这两种情况下,Node 对象的内存引用是否相同?

问题描述

class Node:
    def __init__(self, key, value):
        self.key = key
        self.value = value
        self.prev = None
        self.next = None

将此视为节点(DLL)结构,我有以下两个我关心使用的函数的实现:

1.
def put(self, key, value):
       """
       :type key: int
       :type value: int
       :rtype: void
       """
       if key not in self.hashmap:
           self.hashmap[key] = Node(key, value)
           self.add(hashmap[key])


2.
self.hashmap[key] = Node(key, value)
             self.add(Node(key, value))

在这两种情况下,我都试图将 Node 值添加到类结构中。在 (1) 中,我很确定 is 的值hashmap[key]Node(key, value)被添加。

我的直觉告诉我,在情况 (2) 中,将创建并添加一个新对象,而不是在 line 中创建的同一个对象self.hashmap[key] = Node(key, value)

我的预感正确吗?为什么或者为什么不?

标签: python

解决方案


推荐阅读