以python3版本為例說明,int類型在python中是動態長度的。因為python3中int類型是長整型,理論支持大的數字,但它的結構其實也很簡單,在longintepr.h中定義:
struct_longobject{
PyObject_VAR_HEAD
digitob_digit[1];
};
這結構是什么意思呢,重點在于ob_digit它是一個數組指針。digit可認為是int的別名。python的整型存儲機制是這樣的。比方要表示一個很大的數:123456789。而每個元素只能表示3位十進制數(為理解打的比方)。那么python就會這樣存儲:
ob_digit[0]=789
ob_digit[1]=456
ob_digit[2]=123
低位存于低索引下。python中整型結構中的數組,每個元素存儲15位的二進制數(不同位數操作系統有差異32位系統存15位,64位系統是30位)。
因此,sys.getsizeof(0)數組元素為0。此時占用24字節(PyObject_VAR_HEAD的大小)。sys.getsizeof(456)需使用一個元素,因此多了4個字節。
以上內容為大家介紹了Python中int占幾個字節,希望對大家有所幫助,如果想要了解更多Python相關知識,請關注IT培訓機構:千鋒教育。