首页 > 解决方案 > 为什么 Python 整数被实现为对象?

问题描述

为什么 Python 整数被实现为对象?

文章Why Python is Slow:looking Under the Hood及其评论包含有关 Python 内存模型及其影响的有用信息,特别是关于性能的信息。

但是这篇文章并没有问或回答为什么首先做出将整数实现为对象的决定的问题。

特别是,将 Python 称为动态类型并不是一个答案。可以将整数实现为动态类型语言中的整数。

标签: pythonobjectintegermemory-model

解决方案


“Python 是一种动态类型语言”是答案之一。要知道的另一件事:pythonint与大多数其他语言中的整数不同。Pythonint实际上支持长算法(即可以保存大于 2^64 的值)。它速度较慢,这是不可避免的,但它为您提供了一些额外的灵活性。

至于“奇怪”的行为:不要is在 python 中使用以比较值。pythonis所做的是检查两个变量是否指向完全相同的对象。它通过比较他们的 id 来做到这一点。大多数时候这不是你想要的。作为经验法则 -is仅用于检查,仅用于检查is None


推荐阅读