Le troisième Zen de Python
Le simple vaut mieux que le complexe.
En Python, chaque caractère d'une chaîne occupe 8 bits d'espace.
>>> import sys >>> sys.getsizeof('') 37 >>> sys.getsizeof('a') 38
Comme vous pouvez le voir, le caractère nul occupe 37 octets, et la chaîne 'a' d'une longueur de 1 occupe 38 octets de mémoire. un caractère de plus a Ensuite, il y a 1 octet de plus.
Recommandations associées : "Tutoriel vidéo Python"
Chaque caractère est stocké dans ob_sval, représentant une taille de 8 bits. Les 36 octets restants proviennent principalement. Macro PyObject_VAR_HEAD. En fait, l'implémentation de chaîne de Python utilise également une variable globale appelée *interned, qui peut stocker des chaînes d'une longueur de 0 ou 1, c'est-à-dire char, ce qui peut économiser de l'espace et accélérer.
En fait, il n'y a ni pointeurs ni "structures de données nues" (non-objets) en Python, même l'entier le plus simple, entier, est implémenté de cette façon.
En bref, cette conception satisfait la philosophie de conception de Python selon laquelle « tout est un objet » et « tout est aussi simple que possible ».
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!