Python中的非局部变量

Python017

Python中的非局部变量,第1张

局部语句可以让所列的标识符(identifier)指向最近的嵌套作用域(enclosing scope)中已经绑定过的变量,全局变量除外。具体参考

b()中并不会赋值,a()和b()中i重名,报错local variable 'i' referenced before assignment

b()虽然可以读到a()中的变量i,但不会对其可写,nonlocal可以指定b()中i的赋值对象指定为a()中i

i和j只是变量,用于承载数值。

如:for i in range(1,10):

state

那么i会从1到9依次取值,并且当i取1时运行一次state的内容,之后返回,i取2,再次运行state。

在python程序中,变量可以根据变量所在位置和作用范围分为局部变量和全局变量两种,局部变量仅在函数内部存在,作用域也只有函数内部。全局变量作用域为多个函数均可使用。

一、局部变量

局部变量是在某个函数中声明的,只能在该函数中调用它,如果试图在超出范围的地方调用,则会出现错误。(在函数中使用后,局部变量就会被释放,所以无法在其他范围内被调用)

二、全局变量

全局变量是指在整个.py文件中定义的变量,在程序执行的全过程均有效。全局变量在函数内部使用时,需要使用保留字global进行声明。

(在声明全局变量时,变量名不可改变!)