请仔细阅读以下代码并解释我如何实现我共享代码的输出:
class Customer:
pass
c1=Customer()
print(c1)
print(Customer())
print(Customer(),Customer())
print(c1,Customer())
print(Customer())
print(Customer())
输出:
<__main__.Customer object at 0x0172FA90>
<__main__.Customer object at 0x0172FAB0>
<__main__.Customer object at 0x0172FAB0> <__main__.Customer object at 0x0172FB10>
<__main__.Customer object at 0x0172FA90> <__main__.Customer object at 0x0172FAB0>
<__main__.Customer object at 0x0172FAB0>
<__main__.Customer object at 0x0172FAB0>
答案 0 :(得分:1)
对象的分配恰好使用相同的内存位置,这不是允许的。
由于您创建的实例由于没有现有的引用而立即被收集,因此Python有可能重新使用相同的内存,导致其中一些具有相同的地址,请参阅{{3 }}:
返回对象的“标识”。这是一个整数,在该生命周期内保证该对象是唯一且恒定的。 两个生命周期不重叠的对象可能具有相同的
id()
值。
(强调我的)