1、变量(variable)
变量是计算机内存中的一块区域,在python中,内容可以任意改变。变量在内存中创建时会包括变量名、变量标示和变量的值三种信息。
如以下代码段:
a=12 # a 自然是变量名;可以用 print( id(a) ) 来查看变量标示;12就是变量值了。
print(a)
a=32
print(a)
可以看到两次的输出结果分别是12和32,但是在这里要提一下变量和内存的关系。在python中,变量和内存是一种链接关系,在上例中,第一行代码使 a 指向了 12 所存储的内存区域;但是第三行代码中改变了这种指向,使得 a 指向了 32 所存储的区域,所以在后面代码中使用 a 时,其值就是 32.
出于节约内存的考虑,在更改变量的值(即更改变量的指向)之前,可以使用下面两种办法释放内存:
(1) a = none
(2) del a
第一种方法不会彻底清除变量定义留下的影响,还会留下一个变量名;第二种方法就比较彻底。但是一般变量占用的内存都不会对程序运行产生太大的影响,毕竟现在内存很便宜,所以也没要随时清理。
1.1 变量的分类
变量分为全局变量 和 局部变量
1.1.1 全局变量
全局变量是具有广泛共享性的变量。(1) 在同一份文件中,它可以被不同的函数或类使用和改变;(2) 在所处文件之外,它又可以被外部文件访问。可以说,在某份文件中,在函数或类之外定义的变量都是全局变量。全局变量的生命周期总被定义开始到文件结束。
如:
var = 21 #此处var就是全局变量
def func():
print( var )
var = 67
print( var )
输出为:
21
67
可以看到,全局变量在经历过一个函数后,数值已经被改变了。
因此,在使用过程中建议尽量避免使用全局变量,就是由于各个函数和模块都可以改变全局变量,在复杂的程序中,会出现全局变量值的不可预知性。比如函数1使用并改变了全局变量var,但函数2需要使用 var 改变之前的值,就会产生麻烦。
1.1.2 局部变量
局部变量是在函数体内或类体内定义的变量,其生命周期从定义开始到函数或类结束。如:
def func():
local_var = 99
print( local_var )
print( local_var ) #程序在此处会报错。
其中 local_var 就是局部变量,在函数体外使用时就会产生错误,因为局部变量所在的函数结束时,其生命便完结了。
2、常量(constant)
常量也是在内存中开辟出来的一块区域,不过这块区域是只读的,因此常量一旦定义,就不能再修改。单独的数字、字符串等都属于常量。在python里面没有特定的关键字来定义常量,其实在科研工作中,也没必要特别把常量和变量区分开。
网友评论