python - 我如何确定 python 使用的类型的确切大小

标签 python

>>> sys.getsizeof(int)
436 #? does this mean int occupies 436 bytes .

>>> sys.getsizeof(1)
12 #12 bytes for int object, is this the memory requirement.

我以为python中的int是4个字节表示的,为什么报12个字节

请有人解释为什么当 int 只使用 4 个字节时它报告 12 个字节

最佳答案

是的,int 实例在您的系统上占用 12 个字节。整数(与任何对象一样)具有属性,即指向其他对象的指针,这些属性占用的内存空间超出了对象自身值所使用的空间。所以 4 个字节用于整数值,4 个字节用于指向 __class__ 的指针(否则,Python 不知道对象属于什么类型以及如何开始解析从 继承的属性名称>int class and its parents),另外 4 个用于对象的引用计数,由垃圾收集器使用。

int 类型在您的系统上占用 436 个字节,它将是指向 int 类的各种方法和其他属性以及 Python 需要的任何其他内务管理信息的指针类。 int 类是用标准 Python 实现中的 C 语言编写的;你可以去看看源代码,看看里面有什么。

关于python - 我如何确定 python 使用的类型的确切大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7779207/

相关文章:

python - Excel 自动筛选范围 : keep the range unchanged/avoid that rows are added automatically

当azure应用程序重新启动时,通过SSH安装的Python包被删除

python - 如何在 Python 中创建数组

python - 如何在 PyCharm 中获取错误返回类型的警告?

python - 使用 numba 提供显式类型时,njit 编译期间出现输入错误

python - 嵌套(二维)字典的类迭代器?

php - 来自 Programming Collective Intelligence 一书第 4 章,此查询的 MySQL 等价物是什么?

python - 我可以声明不兼容的 python 依赖项吗?

python - Pandas 按范围分组,允许重复

python - 尝试同步数据库时出现类错误(Python Django)