In python 3, there is no limit on the value of integers, as mentioned in this post.
This does have an interesting side effect with numpy
, where depending on the integer value, you might get an object or an integer.
np.array(int('9'*3)).dtype
# int64
np.array(int('9'*38)).dtype
# object
np.array(2**64-1).dtype
# uint64
Can someone explain to me why python 3 does not have a limit on integer size, and how do they do it (under the hood).