Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何理解两次连续赋值'cur=dummy=Node(7)`或'a=b=Node(7)`?_Python_Linked List - Fatal编程技术网

Python 如何理解两次连续赋值'cur=dummy=Node(7)`或'a=b=Node(7)`?

Python 如何理解两次连续赋值'cur=dummy=Node(7)`或'a=b=Node(7)`?,python,linked-list,Python,Linked List,以下是我的四段代码: # CELL-1: Node definition class Node(object): def __init__(self,val): self.val = val self.next = None # CELL-2 cur = dummy = Node(7) dummy.next = Node(5) print cur, dummy print cur.next.val # CELL-3 cur = dummy = Node

以下是我的四段代码:

# CELL-1: Node definition
class Node(object):
    def __init__(self,val):
        self.val = val
        self.next = None

# CELL-2
cur = dummy = Node(7)
dummy.next = Node(5)
print cur, dummy
print cur.next.val

# CELL-3
cur = dummy = Node(7)
cur.next = Node(5)
print cur.next.val, dummy.next.val
print cur, dummy

# CELL-4
cur = Node(7)
dummy = Node(7)
dummy.next = Node(5)
print cur, dummy
print cur.next.val
及其产出

我对以下三个问题感到困惑:

问题1:cur是物理地址吗?还是逻辑地址?或者只是一个变量名?还有哑巴? Q-2:在2号和3号单元格中,cur是否与dummy具有相同的物理地址,或者换句话说,为什么cur会随着dummy的改变而改变? 问题3:0x0000000004CD15C0是否表示存储空间的物理地址?
我会尽量简单地解释

A1:cur是一个变量名,它指向内存中的对象节点。dummy也是一样,它是指向内存中对象的指针

A2:因为您正在执行cur=dummy=Node7,所以您正在为这两个变量分配内存中的同一个对象。所以,当它改变时,两个指向它的变量都会注意到这个改变。但是,由于您在步骤4中声明了两个节点对象并将它们分配给不同的变量,因此它们将独立更改

A3:这是驱动器上的物理内存位置