Python学习【第9篇】:python中的局部变量与全局变量
1.全局变量
全局变量定义后可被下面所有函数进行调用
例子:
name = "xiao"
def chang_name():
print("chang_name",name)
chang_name()
运行结果是:
chang_name xiao
在这里一开始name定义的就为全局变量,下面的函数直接调用全局变量并输出
2.局部变量
局部变量定义后只在当前函数下有效
def chang_name():
name = "xing"
print("chang_name",name)
chang_name()
运行结果为:
chang_name xing
在这里定义局部变量name,并赋值,这里的变量只在当前函数下有效
3.全局变量和局部变量
当全局变量和局部变量同时出现时,函数内如果定义了局部变量,那么优先输出局部变量,因为输出机制是先查找
函数内局部变量,未找到再找全局变量(在局部变量和全局变量同名的情况下)
例子:
name = "xiao"
def chang_name():
name = "xing"
print("chang_name",name)
chang_name()
运行结果是:
chang_name xing
(1)
如果函数内部无global关键字,优先读取局部变量,只能读取全局变量,无法对全局变量进行重新赋值
(2)
如果函数内部有global关键字,变量本质上就是全局变量那个值,可读取和重新赋值
例子:
name = "xiao"
def chang_name():
print(name)
chang_name()
运行结果是:
xiao
在这里读取的是全局变量,也是无法对全局变量进行赋值操作的
name = "xiao"
def chang_name():
global name
name = "xing"
print(name)
chang_name()
def chang_name1():
print(name)
chang_name1()
运行结果:
在这里原来全局变量name赋值为xiao,但是我们在第一个函数中定义了global,并重新进行了赋值,所以第二个函数在取全局变量时,已经是被修改过后的变量了
3.局部变量