example1:
been_Called = True def example(): been_Called = False example() print(been_Called)
当运行时发现been_called并没有改变,问题在于函数中会新创建一个局部变量been_called,局部变量在函数结束时就会消失,并且对全局变量没有任何影响。
声明全局变量。global语句高速编译器,在这函数里,对于been_called,指的是全局变量,不需要新创建一个局部变量。
been_Called = True def example(): global been_Called been_Called = False example() print(been_Called)
同时对于可变的管局变量,例如列表,字典,可以不用声明该变量为全局变量就可以修改该值。