【问题标题】:Assigning the same variable repetitively gets just 2 IDs [duplicate]重复分配相同的变量只会得到 2 个 ID [重复]
【发布时间】:2018-08-13 07:17:06
【问题描述】:

为什么我在这里只能得到 2 个不同的 ID?下面发生了什么?

我在这里尝试禁用gc,它不影响结果。

我偶尔会得到 3 个不同的 ID,但大多数时候我只得到 2 个。

class A: 
    pass

for i in range(10):
    a = A()
    print(id(a))

# output
4565372768
4565372880
4565372768
4565372880
4565372768
4565372880
4565372768
4565372880
4565372768
4565372880

【问题讨论】:

    标签: python python-3.x oop garbage-collection variable-assignment


    【解决方案1】:

    当它为 i=0 运行循环时,它为 A 的该实例分配内存(内存地址:4565372768)。当它第二次运行时,即 i=1,因为该地址处的内存仍被该实例占用它分配了一些其他位置(内存地址:4565372880)来存储类的实例。当它第三次运行时,即 i=2 之前的内存被释放,并且内存位置(地址:4565372768)第三次被释放,它再次分配相同的位置。

    【讨论】:

      猜你喜欢
      • 2012-05-25
      • 2020-05-16
      • 1970-01-01
      • 2016-05-12
      • 1970-01-01
      • 2012-12-08
      • 2015-08-09
      • 2016-05-10
      相关资源
      最近更新 更多