1. 全局变量可以被内部函数访问,但是却不能直接被内部函数修改。如果要修改全局变量,需要在内部函数中声明global x(x是相应的全局变量);
2. 如果是两个函数嵌套,那么内部函数要修改外部函数的变量则应该使用nonlocal语句;
3. global的所用对象是全局变量,会修改这个变量对应地址的值;nonlocal的作用对象是外部内嵌函数的变量(闭包),nonlocal只在闭包里面生效,不影响闭包外面。
1. 全局变量可以被内部函数访问,但是却不能直接被内部函数修改。如果要修改全局变量,需要在内部函数中声明global x(x是相应的全局变量);
2. 如果是两个函数嵌套,那么内部函数要修改外部函数的变量则应该使用nonlocal语句;
3. global的所用对象是全局变量,会修改这个变量对应地址的值;nonlocal的作用对象是外部内嵌函数的变量(闭包),nonlocal只在闭包里面生效,不影响闭包外面。