Czy ktoś wie, jak Python zarządza wewnętrznie typami int i long?
- Czy dynamicznie wybiera właściwy typ?
- Jaki jest limit int?
- Używam Pythona 2.6, czy różni się od poprzednich wersji?
Jak mam zrozumieć poniższy kod?
>>> print type(65535)
<type 'int'>
>>> print type(65536*65536)
<type 'long'>
Aktualizacja:
>>> print type(0x7fffffff)
<type 'int'>
>>> print type(0x80000000)
<type 'long'>
realloc
wszystko w porządku. Ale nie jestem do końca pewien, więc odpowiedź zostawię komuś innemu.
var = 666L
int
jest C long
(domyślnie jest podpisany) ... zobacz <CPython 2.X source>/Include/intobject.h
: typedef struct {PyObject_HEAD długo ob_ival; } PyIntObject; W każdym razie Python 2.x int
dopuszcza liczby ujemne; C unsigned
po prostu by sobie nie poradził.