at backyard

Color my life with the chaos of trouble.

Python3で最大の整数を取得する関数 - sys.maxsizeについて

Python3 では表示できる整数の上限というのはないらしい。
(逆に言うとPython2ではあったようで、そちらの値は sys.maxint という関数で値は取得できた。だが、Python3ではこちらの関数自体がなくなっている)

整数の上限はないようだが、最大値を示す整数を取得する関数というのはあるらしい。

docs.python.org

Py_ssize_t 型の変数が取りうる最大値を示す整数です。通常、32 ビットプラットフォームでは 231 - 1、64 ビットプラットフォームでは 263 - 1 になります。

私の環境(M1 mac)で実施すると下記のようになる。

sys.maxsize
# => 9223372036854775807

なお、こちらの整数に整数を足しても特にエラーにはならない。

sys.maxsize + 1
# => 9223372036854775808

私の場合、とある数値計算の比較処理で、比較対象の数値よりも必ず大きい整数を返す場合の処理として、この sys.maxsize を利用することにしたが、こういう関数は他にどういうユースケースがあるのかちょっと気になる。

あとで時間を見つけて調べてみようと思う。