python全局变量

本文原创,版权属作者个人所有,如需转载请联系作者本人。Q&微:155122733

--------------------------------------------------------------------------------------------------------

函数中可以直接调用全局变量,但是:

如果全局变量是可变类型:即列表或者字典,那么就可以在函数中直接进行修改;

而如果函数是不可变类型:比如int,long bool float str tuple,则不能直接在函数中修改,必须global 变量后才能更改。

#!/usr/bin/python
a = 100 
num_list=[11,22]
def test_value():
        print("-"*20)
        #a+=1#直接修改,因a为不可变类型,不能直接修改,因此此处会报错
        a =200#可能是定义,也可能是修改,因没有对全局变量a进行global声明,因此全局变量a不能修改,所以此处为新定义了一个a变量
        print(a)#如果全局变量和局部变量名字相同,则函数用的是局部变量 此处显示:200
def test_list():
        print("-"*20)
        num_list.append("cola")
        print(num_list)# display [11, 22, 'cola'] num_list为可变类型,因此可以直接修改,不需要global声明
test_value()
test_list()
原文地址:https://www.cnblogs.com/lcl0421/p/8136778.html