文章目录
1. 问题引入
如果你使用Python声明了一个变量并同时为其赋值,即a = 20,你是否将这条语句简单理解为:a. 计算机开辟了一块地址别名为a的内存;b. 往这块内存存储了数据20?
如果你对上述问题的回答为是,那么你对于注入“Python是一门动态类型语言”、“Python效率远不如C语言等静态语言效率高”等说法也一定不了解其本质。
2. 问题解答
实际上,计算机在执行上述Python语句时,其本质如下图所示:
即在Python中:
- 和其他编程语言一样,变量是内存地址的别名,即a代表了地址0x1002;
- 和其他编程语言不一样的是,Python中的变量和数据分开存储:a. 变量所代表的地址0x1001处仅保存了数据的地址0x1002,实际的数据通过二进制形式保存在地址0x1001所标示的内存空间处。