三行代码  ›  专栏  ›  技术社区  ›  amayoon

python中实例的地址值和id(实例)的地址值之间有什么区别?

  •  -2
  • amayoon  · 技术社区  · 1 月前
    class T:
        pass
    
    
    t = T()
    
    print(t) # <__main__.T object at 0x100651460>
    print(id(t)) # 4301591648
    

    上面代码中0x100651460和4301591648之间的区别是什么?id(t)是打印每个人都知道的对象的地址值。然而,< 主要的 0x100651460处的.T对象>还意味着0x100651460是对象的地址值。哪一个是真正的地址值?

    1 回复  |  直到 1 月前
        1
  •  2
  •   kaya3 Muhammad Musavi    1 月前

    他们是同一个号码。值没有区别,唯一的区别是第一个值用 hexadecimal

    >>> hex(4301591648)
    '0x100651460'
    >>> 0x100651460 == 4301591648
    True
    

    前缀 0x 通常用于表示十六进制表示。