Vis*_*ddi 2 python reference concept python-2.7
我习惯了指针和参考,但我需要澄清一点:
我的Node类中有这个方法:
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)
Run Code Online (Sandbox Code Playgroud)
的的范围newNode中创建是函数内createNewNode().现在,此节点将添加到Graph类中的节点列表中.
Graph类具有以下功能:
def addNode(self, node):
self.nodeList.append(node)
Run Code Online (Sandbox Code Playgroud)
现在Graph类函数addNode()只是将节点附加到图类中的节点列表.在graph.addNode()节点类中调用之后,newNode变量的作用域何时停止存在?
现在,附加到Graph类列表中的数据不会无效吗?是否append()传递了对象的新副本?你能解释一下吗?
(在此示例中,图表仅包含节点列表,节点实际上是包含详细信息的字典.)
名称newNode超出范围,但它引用的对象不会被销毁.您通过附加添加了对该对象的另一个引用nodeList. append不会复制,但它确实创建了对同一对象的单独引用.一个名字超出范围时,该功能是在结束,而是一个对象只有当垃圾收集所有对它的引用都不见了.
| 归档时间: |
|
| 查看次数: |
31 次 |
| 最近记录: |