The idea is mixing
PyLongObject with Python 2’s
For example, on a 64-bit platform, if (an integer >=-9223372036854775808 and <=9223372036854775807),
PyLongObject uses a native C type
signed long to represent it.
People mostly use
* operations, maybe using native int is faster, even including the cost of overflow check.
If operation will overflow or other operations like
**(power operator), we can transform native int to current form, and run in current code path.