我已经习惯了指针和引用,但我需要澄清一下这一点:
我的节点类中有以下方法:
def createNewNode(graph):
#Create New Node Dictionary
newNode = {}
# Fill in Details for that Node
newNode['NAME'] = 'Max'
newNode['AGE'] = 22
newNode['ID'] = 'DC1234SH987'
#Add the Node to the Graph
graph.addNode(newNode)
创建的newNode
的范围在函数createNewNode()
中。现在这个节点被添加到Graph类中的节点列表中
Graph类具有以下功能:
def addNode(self, node):
self.nodeList.append(node)
现在,Graph类函数addNode()
只是将节点附加到Graph类中的节点列表中。在node类中调用graph.addNode()
之后,newNode
变量的作用域何时停止存在
附加到Graph类中的列表中的数据现在不是无效的吗?
append()
是否生成所传递对象的新副本?你能给我解释一下吗
(在本例中,图形仅包含节点列表,而节点实际上是一个包含详细信息的字典。)
名称
newNode
超出范围,但它引用的对象没有被销毁。您通过将该对象附加到nodeList
来添加对该对象的另一个引用append
不会创建副本,但会创建对同一对象的单独引用。一个名称在它所在的函数结束时会超出作用域,但是一个对象只有在所有引用都消失时才会被垃圾收集相关问题 更多 >
编程相关推荐