【问题标题】:Learning about class and objects in python [duplicate]学习python中的类和对象[重复]
【发布时间】:2021-12-20 07:00:34
【问题描述】:

我是python新手。我一直在学习类和对象。你们能解释一下为什么在函数内部创建的对象具有相同的ID,而在函数外部创建的对象具有不同的ID。

我创建了一个空类节点。我使用了“check()”函数来创建对象并找到它的 ID。

class Node:
      pass

def check():
    obj = Node()
    print(id(obj))
    
check()
check()


OUTPUT:
1983605942928
1983605942928
 
'Here the ids returned are same '

在下面的代码中,我在类之外创建了对象,但具有不同的 ID。

class Node:
    pass 

obj1 = Node()
obj2 =Node()
print(id(obj1),id(obj2))

OUTPUT:
2059740686992
2059740898976

【问题讨论】:

    标签: python function class object reference


    【解决方案1】:

    第一次调用check()后,该函数创建的本地Node对象被销毁,同一地址可用于创建新对象。第二个 Node 对象是在内存中的同一位置创建的。

    【讨论】:

      猜你喜欢
      • 2017-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-18
      • 1970-01-01
      • 2011-10-24
      • 1970-01-01
      • 2011-12-03
      相关资源
      最近更新 更多