变量及变量内存管理

 1.变量的定义,什么是变量?

    量:衡量/记录现实世界中的状态,让计算机能够像人一样去识别世间万物。(很抽象,可以简单理解为一种状态)
变:现实世界中的状态是会发生改变的。

2.为什么要有变量?
因为程序执行的本质就是一系列状态的变化。比如MOBA类游戏,游戏运行时会有经济,人数的变化。这些变化的量就是变量。

3.定义变量分为三部分:
①·变量值    我们存放的数据,用于记录现实生活中状态。
②·赋值符号   赋值。
③·变量名    用来引用变量值,但凡调用变量值,就要通过变量名。

4.变量名的命名规范
大前提:变量名的命名应该能反映变量值的记录状态。(容易识别,别人看到你的变量名就会知道他是用来记录什么类型的变量值)
变量名只能是数字,字母,下划线的任意组合(变量名不能以数字开头)
关键字不能声明为变量名。关键字查看:help(“keywords”)

5.变量名的两种命名风格
①·驼峰体 AgeOfOldboy
②·下划线 age_of_oldboy (为了和常量区分开,一般下划线命名会使用小写字母+下划线+数字)

6.常量
常量就是不变的量,不存在状态变化。
python语法里没有强制性去定义常量,都是约定俗成,用全大写+下划线取命名常量。
C语言里一旦定义了常量,则常量不能修改。

7.python的内存管理
有个引用计数的概念:变量值被引用的次数。
比如x = 10 变量值读入到内存,内存会分配一块空间给10.变量名x指向这个地址,此时这个地址可以通过x来调用,引用计数为1.
y = x x赋值给y,y也指向10所在的内存地址,通过y也可以调用10,引用计数为2.
x = 11 内存给11分配一块空间并且x解除和10之间的联系,引用计数减1,变成1.
del y 接触y与10之间的联系,不能通过y来调用10,10这个变量值的引用计数为0.10这块内存相当于变成了一个垃圾内存,不能被调用。
引用计数为0,变量值不能被调用,就变成了垃圾,python的垃圾回收机制会定义回收这些垃圾。c语言需要自己手动释放这些内存。

id() python解释器内置的方法。每一个变量值都有其内存地址,id()是用来反映变量值在内存中的位置。内存地址不同则id不同。

内存每分配给一个变量值一个内存地址,就是一个新的id,不管变量值是否相等。
在IDE里,两个值相同,内存地址也相同(两个本应该独立的内存地址为什么id会相同?)。但是在交互式环境里,超过一定大小的值id值则不同,这个才符合内存地址的定义。
为什么IDE里,两个变量值id会相同,是因为IDE里有个优化的机制,如果你两个变量值相同,内存会自行处理优化,
不需要经过cpu再重新处理一次(因为两个值相同),节省一点时间,程序运行更快。

8.定义变量的三个特征

id()
print(id(x))

type()
print(type(x))


print(x)

总结:
1、id相等,值一定相等
2、值相等,id却不一定一样




 

posted @ 2018-05-26 16:04  Roc_Atlantis  阅读(150)  评论(0编辑  收藏  举报