【问题标题】:Object Memory Allocation for a int and tuple [duplicate]int和元组的对象内存分配[重复]
【发布时间】:2020-04-19 02:18:45
【问题描述】:

当我检查id(10) 两次(int 类型的对象)时,解释器给出了相同的结果。 但是当我尝试使用tuple object (1,2,3) 时,我得到了不同的答案,尽管 int 和 tuple 都是不可变的。我能知道发生这种情况的原因吗?

【问题讨论】:

  • 不要将文字作为图片发布

标签: python python-3.x python-2.7


【解决方案1】:

ints 在 Python 中有一个非常特殊的行为,直到 257 为止,都没有分配新的对象。拿这个:

>>> a, b = 257, 257
>>> id(a)
140640774013296
>>> id(b)
140640774013296

但是当你这样做时:

>>> a = 258
>>> b = 258
>>> id(a)
140410944685744
>>> id(b)
140410944685872

请注意,id 是不同的,同样不适用于每次创建新对象的元组。

【讨论】:

    猜你喜欢
    • 2019-07-25
    • 2013-12-04
    • 1970-01-01
    • 2012-12-13
    • 1970-01-01
    • 2015-10-15
    • 2017-11-08
    • 2020-06-02
    相关资源
    最近更新 更多