Est-ce que quelqu'un sait comment Python gère en interne les types int et long?
- Choisit-il le bon type de manière dynamique?
- Quelle est la limite pour un int?
- J'utilise Python 2.6, est-ce différent des versions précédentes?
Comment dois-je comprendre le code ci-dessous?
>>> print type(65535)
<type 'int'>
>>> print type(65536*65536)
<type 'long'>
Mettre à jour:
>>> print type(0x7fffffff)
<type 'int'>
>>> print type(0x80000000)
<type 'long'>
realloc
tout va bien. Mais je ne suis pas tout à fait sûr, alors je vais laisser la réponse à quelqu'un d'autre.
var = 666L
int
est un C long
(la valeur par défaut est signée) ... voir <CPython 2.X source>/Include/intobject.h
: typedef struct {PyObject_HEAD long ob_ival; } PyIntObject; Dans tous les cas, Python 2.x int
autorise les nombres négatifs; un C unsigned
ne ferait tout simplement pas l'affaire.