局部变量就是python函数内定义的变量
其作用范围也就是函数内部有效而且优先,出了此函数就无效
name=‘全局‘
def fun1():
name=‘局部‘
print(‘fun1:‘,name)
def fun2():
print(name)
def main():
fun1()
fun2()
if __name__=="__main__":
main()
结果
fun1: 局部
fun2 全局
我们可以看出局部变量作用范围有限
从创建开始到程序结束都有效果
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 全局
在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]
原文:https://www.cnblogs.com/liuzhijun666/p/13127310.html