python「自己増加」について

1662 ワード

多くの言語には自己増加があり、++iのようにiの値を1増加させる.Pythonを書くときに自増演算を習慣的に使った結果,プログラム中の++iは1を増やしていないことが分かった.どうしたんですか.pythonの++iはいったいどういう意味ですか?
元pythonの数値タイプは可変データではありませんでした.数値タイプのデータは【メモリ】では変更されず、変数値が変更されると、新しいメモリ割り当て値が申請され、変数が新しいメモリアドレスに指定されます.
>>> a = 10
>>> id(a)
140698656902112
>>> a = a+1
>>> id(a)
140698656902144

aの値が変化すると,aが指すメモリアドレスも変化することがわかる.C言語では、aが指すメモリアドレスは変更されず、メモリの内容が変更される.
ここから、なぜ「自増」がpythonに存在しないのかが理解できます.++オブジェクト自体が変更されたことを表し、pythonの数値タイプは可変ではありません.可変ではない以上、増加から来ていますか?これは技術的な問題ではなく、設計哲学の問題のようです.
では、++iはいったい何ですか.この2つの+は、実際には、他の言語での自己増加ではなく、データの正負を表す正号〜である.
驚くべきことに、頻繁に使用される数字について、メモリを節約するために、pythonには整数プールというものがあります.私はpython 3にいます.5.4でテストし、整数プールは-5~256を含む.すなわち,[−5,256]の範囲では,同じ値の変数が同じメモリアドレスを指す.
>>>a = -5
>>>b = -5
>>>a is b
>>>True

>>>a = 256
>>>b = -256
>>>a is b
>>>True