python局部和全局变量
全局变量和局部变量
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]

 
     
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号