我认为这个问题可能已经有了答案,但我似乎无法找到它。如果您找到答案,请将其标记为重复。
我不是在问为什么,但我怎么能不发生这种情况呢?
我希望j
与id
不同i
。
说我什么时候,
>>> i = 6
>>> j = 6
>>> id(i)
10919584
>>> id(j)
10919584 #I don't want this, I want j to point to a different object
所以,我得到上面代码中发生的事情(或者至少我认为我做了),但我的问题是如何防止它?
我只是出于好奇而问它,它可能有也可能没有任何实际用途或相关性。
答案 0 :(得分:3)
有点使用这个可能的用途;我找到的选项:
class NoFixedInt(int):
pass
a = NoFixedInt(6)
b = NoFixedInt(6)
c = NoFixedInt(6)
print id(a)
# 4485155368
print id(b)
# 4485155656
print id(c)
# 4485155728
当然,我不知道这是否适合你,因为它有你必须投射一切的问题,但它确实有效。