内容简介:一开始学习 Python 的时候习惯性的使用 C 中的我们可以看一下 Python 下:再来看看 C 语言中:
一开始学习 Python 的时候习惯性的使用 C 中的 a++
这种写法,发现会报 SyntaxError: invalid syntax
错误,为什么 Python 没有自增运算符的这种写法呢?
我们可以看一下 Python 下:
>>>a = 2 >>>b = 2 >>>id(a) #id() 函数用于获取对象的内存地址。 140732976575344 >>>id(b) 140732976575344 >>>
再来看看 C 语言中:
#include<stdio.h> int main() { int a = 1; int b = 1; printf("%d\n",&a); printf("%d\n",&b); return 0; }
输出:
这里可以看出 Python 在变量的存储上与 C 语言的不同,在 C 语言中,值的存储以变量名来区分,一个变量具有单独的地址空间;而 Python 中则不一样,只要值是相同的,不管你的变量名是什么,它们的地址都是相同的,也就是说, Python 允许一个值被多个变量名称绑定。
这里说明一下,在脚本式编程环境中是这样,但是在交互式编程环境下,Python 为了优化速度,使用了小整数对象池, 避免为整数频繁申请和销毁内存空间,编译器会有一个小整数池的概念,小整数的定义是 [-5, 256] 这些整数对象是提前建立好的,不会被垃圾回收,也就是说,变量在这个范围内是会按照前面所说的,共用内存地址,超过这个值则使用单独的内存地址。 如:
>>>a=1000 >>>b=1000 >>>id(a);id(b) 266662366224 266617350384 >>>
参考资料: @wangyunfeis
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
实用Common Lisp编程
Peter Seibel / 田春 / 人民邮电出版社 / 2011-10 / 89.00元
由塞贝尔编著的《实用Common Lisp编程》是一本不同寻常的Common Lisp入门书。《实用Common Lisp编程》首先从作者的学习经过及语言历史出发,随后用21个章节讲述了各种基础知识,主要包括:REPL及Common Lisp的各种实现、S-表达式、函数与变量、标准宏与自定义宏、数字与字符以及字符串、集合与向量、列表处理、文件与文件I/O处理、类、FORMAT格式、符号与包,等等。......一起来看看 《实用Common Lisp编程》 这本书的介绍吧!