为什么Python中没有"a++"这种写法

栏目: Python · 发布时间: 7年前

内容简介:一开始学习 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


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

深入理解C指针

深入理解C指针

[美] Richard Reese / 陈晓亮 / 人民邮电出版社 / 2014-2 / 45.00

深入理解C指针和内存管理,提升编程效率!这是一本实战型图书,通过它,读者可以掌握指针动态操控内存的机制、对数据结构的增强支持,以及访问硬件等技术。本书详细阐述了如何在数组、字符串、结构体和函数中使用指针,同时演示了相应的内存模型及其对指针使用的影响。 指针为C语言带来了强大的功能和灵活性,却也是C语言中最难啃的一块“骨头”。本书旨在帮读者透彻理解指针,解决这个老大难问题。不论是初学者还是经验......一起来看看 《深入理解C指针》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

随机密码生成器
随机密码生成器

多种字符组合密码

html转js在线工具
html转js在线工具

html转js在线工具