python - 为什么 Python 整数被实现为对象?
问题描述
为什么 Python 整数被实现为对象?
文章Why Python is Slow:looking Under the Hood及其评论包含有关 Python 内存模型及其影响的有用信息,特别是关于性能的信息。
但是这篇文章并没有问或回答为什么首先做出将整数实现为对象的决定的问题。
特别是,将 Python 称为动态类型并不是一个答案。可以将整数实现为动态类型语言中的整数。
解决方案
“Python 是一种动态类型语言”是答案之一。要知道的另一件事:pythonint
与大多数其他语言中的整数不同。Pythonint
实际上支持长算法(即可以保存大于 2^64 的值)。它速度较慢,这是不可避免的,但它为您提供了一些额外的灵活性。
至于“奇怪”的行为:不要is
在 python 中使用以比较值。pythonis
所做的是检查两个变量是否指向完全相同的对象。它通过比较他们的 id 来做到这一点。大多数时候这不是你想要的。作为经验法则 -is
仅用于检查,仅用于检查is None
。
推荐阅读
- reactjs - 反应原生材质图标 css 样式
- javascript - 我想在电子中使用 A5 Landscape 设置将 html 文件直接打印到打印机
- python - 运行 beautifulSoup 4 时的依赖问题
- julia - 如何在 Julia 中创建一个计算为 Expr 的 Expr?
- javascript - String.replace 和 "$1"
- css - Bootstrap 3 为移动设备和平板电脑重新排序列
- javascript - 使用 Reactjs 在 TextArea 内提交表单?
- sql - Laravel 使用 case 语句
- spring - Spring 状态机无效转换
- sql - 如何在不同的帐户上制作外键