在python

时间:2018-10-21 08:40:39

标签: python

这是我在编程语言中看到的最奇怪的怪癖之一。考虑以下代码。

In [73]: a = 9
In [74]: id(a)
Out[74]: 1817852288

一切都很好。但是当我计算一个新变量时

In [86]: b = 4+5
In [87]: id(b)
Out[87]: 1817852288

似乎,python编译器/解释器已修复整数9的内存位置1817852288,无论我创建多少变量,它都将引用相同的位置。要支持此主张,请考虑以下问题:

In [90]: array = list(range(0,10))
    In [91]: id(array[9])
    Out[91]: 1817852288

这意味着编译器将数组放置在内存中,使得列表中的整数9与已经使用的内存位置一致。这是低效的设计吗?是什么赋予了?哪里有陷阱我有什么不来的吗?请对此有所说明。谢谢。

0 个答案:

没有答案