虽然Python支持非常复杂的变量作用域和访问顺序(详见:几行代码理解Python变量访问的LEGB顺序、详解Python变量作用域),但是一般而言,能够分清局部变量和全局变量基本上就够用了。
1、一个变量的作用域是指能够访问它的代码范围。
2、函数形参变量的作用域是整个函数。
3、在函数中定义的变量被称作(隐式的)局部变量。如果局部变量是在一个代码块中定义的,那么它从定义的位置开始到其所在函数结束的代码中都是可以访问的,并且在整个函数的范围内,该变量都是局部变量,除非在函数开始使用global关键字进行声明。
4、函数内部for语句中的循环变量是(隐式的)局部变量,和其他局部变量一样,它的作用域会被延伸到其所在的函数结束,除非之前有global声明。
5、Python支持全局变量:函数之外定义的变量。全局变量对于其定义位置之后定义的所有函数都是可见、可读的。然而,任何想修改全局变量的函数都必须包含一个global声明。
6、应尽量避免使用全局变量。