本文原创,版权属作者个人所有,如需转载请联系作者本人。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()