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]
posted @ 2020-06-14 22:04  -东皇太一-  阅读(193)  评论(0编辑  收藏  举报