我可以使相同值的不同变量指向不同的对象吗?

时间:2018-03-11 09:55:00

标签: python python-3.x immutability

我认为这个问题可能已经有了答案,但我似乎无法找到它。如果您找到答案,请将其标记为重复。

我不是在问为什么,但我怎么能不发生这种情况呢?

我希望jid不同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

所以,我得到上面代码中发生的事情(或者至少我认为我做了),但我的问题是如何防止它?

  

我只是出于好奇而问它,它可能有也可能没有任何实际用途或相关性。

1 个答案:

答案 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

当然,我不知道这是否适合你,因为它有你必须投射一切的问题,但它确实有效。