Pythonで小さなint型の強制コピー

hilberts_drinking_problem:

おもちゃの問題として、私は、オブジェクトを思い付くしようとしたa, bように

type(a) == type(b) == int # True
a + 1 == b + 1 == 1       # True
a is b                    # False

そのようでdeepcopy背中に落ちる_deepcopy_atomic説明したように、ここに

それはPythonで小さなint型のコピーを作成することは可能ですか?

ヒープオーバーフロー:

はい、それは可能だし、低レベルのハッキングや詐欺なし:

>>> a = 0
>>> b = 9**99 % 9**99
>>> type(a) == type(b) == int
True
>>> a + 1 == b + 1 == 1
True
>>> a is b
False

私は、Python 3.8.1を使用してローカルにこれをやっている、あなたもそれを再現することができrepl.itでとでwww.python.org/shell/

小さな陽性の場合:

>>> a = 7
>>> b = (9**99 + a) % 9**99
>>> b, type(b), a == b, a is b
(7, <class 'int'>, True, False)

小さなネガの場合:

>>> a = -2
>>> b = (9**99 + a) % -9**99
>>> b, type(b), a == b, a is b
(-2, <class 'int'>, True, False)

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=283062&siteId=1