全局变量和局部变量
1、局部变量
局部变量就是python函数内定义的变量
其作用范围也就是函数内部有效而且优先,出了此函数就无效
操作
name='全局'
def fun1():
name='局部'
print('fun1:',name)
def fun2():
print(name)
def main():
fun1()
fun2()
if __name__=="__main__":
main()
结果
fun1: 局部
fun2 全局
我们可以看出局部变量作用范围有限
2、全局变量
从创建开始到程序结束都有效果
操作
name='全局'
def fun1():
name='局部'
print('fun1:',name)
def fun2():
print('fun2',name)
def main():
print('main:',name)
fun1()
fun2()
if __name__=="__main__":
main()
结果
main: 全局
fun1: 局部
fun2 全局
global声明变量
在python中全局变量不像java或者c语言一样直接可在函数中修改全局变量
所以,python中修改全局变量需要 用global声明(只限于全局变量为不可变)
操作
name='全局'
def fun1():
name='局部'
print('fun1:',name)
def fun2():
print('fun2',name)
def fun3():
global name #声明全局变量
name+="hhhhh"
def main():
print('main:',name)
fun1()
fun2()
fun3()
print(name)
if __name__=="__main__":
main()
结果
main: 全局
fun1: 局部
fun2 全局
全局hhhhh
当全局变量可变时
name='全局'
list=[1,2,3,4]#可变
def fun1():
name='局部'
print('fun1:',name)
def fun2():
print('fun2',name)
def fun3():
global name #声明全局变量
list.append(6)
name+="hhhhh"
def main():
print('main:',name)
fun1()
fun2()
fun3()
print(name)
print(list)
if __name__=="__main__":
main()
结果
main: 全局
fun1: 局部
fun2 全局
全局hhhhh
[1, 2, 3, 4, 6]