对于全局变量的修改,如果全局变量是int或者str,那么如果想要在函数中对函数变量进行修改,则需要先在函数内,声明其为global,再进行修改
如果是list或者dict则可以直接修改。
a = 1 b = [2, 3] c = 1 def func(): a = 2 print ("in func a:", a) b[0] = 1 print ("in func b:", b) global c c = 3 print ("in func c:", c) if __name__ == '__main__': print ("before func a:", a) print ("before func b:", b) print ("before func c:", c) func() print ("after func a:", a) print ("after func b:", b) print ("after func c:", c)
如上示例:
a和c是int型,如何没有声明global的话,那么a的值只是暂时修改了,而声明了全局的c永久变成了3,
对于列表b来说,虽然没有声明global,但在某个函数中修改了也被全局修改了。
来自我们都是大好青年博客:https://www.cnblogs.com/zhibei/p/9755938.html