局部变量:是指在函数内部定义并使用的变量,他只是在函数的内部有效,即函数内部的名字只在函数运行时才会创建,在函数运行之前或者运行完毕之后,所有的名字就都不存在了,所以如果在函数外部使用函数内部定义的变量时就会抛出NameError异常。
全局变量:与局部变量对应,全局变量为能够作用于函数外的变量。全局变量主要有以下两种:
1.如果一个函数在函数体外定义,那么不仅仅在函数外可以访问到,在函数内部也可以访问到。函数体以外的变量就是全局变量
2.如果一个变量在函数体内部定义,并且是以global关键字修饰后,改变量也就成为全局变量函数体外也可以访问此变量。
注意:python当中允许全局变量和局部变量重名,但在实际开发当中不会这么做,容易导致代码混乱,分不清全局变量和局部变量
a = 1
print('外面:',id(a)) 外部定义全局变量,id()查看变量在内存当中的编号
def fun():
global a 函数内部定义全局变量
a = 5
print('里面:',id(a))
fun()
print(a)
print(id(a))
打印结果
外面: 140287825417440
里面: 140287825417568
5
140287825417568