No overflow in variables?

Philip Red filippo.biolcati at googlemail.com
Wed Jan 22 13:09:30 EST 2014


Hi everyone. First of all sorry if my english is not good.
I have a question about something in Python I can not explain:
in every programming language I know (e.g. C#) if you exceed the max-value of a certain type (e.g. a long-integer) you get an overflow. Here is a simple example in C#:

        static void Main(string[] args)
        {
            Int64 x = Int64.MaxValue;
            Console.WriteLine(x);       // output: 9223372036854775807
            x = x * 2;
            Console.WriteLine(x);       // output: -2 (overflow)
            Console.ReadKey();
        }

Now I do the same with Python:

            x = 9223372036854775807
            print(type(x))             #   <class 'int'>
            x = x * 2                  #   18446744073709551614
            print(x)                   #   <class 'int'>
            print(type(x))

and I get the right output without overflow and the type is always a 'int'.
How does Python manages internally the types and their values? Where are they stored?

Thank you for your help :)



More information about the Python-list mailing list