目录

Python 作用域


变量只能在其创建的区域内部使用。这就是所谓的作用域


本地作用域

在函数内部创建的变量属于局部作用域该函数的,并且只能在该函数内部使用。

示例

在函数内部创建的变量在该函数内部可用:

def myfunc():
  x = 300
  print(x)

myfunc()
亲自试一试 »

函数内函数

正如上面例子中所解释的,变量x在函数外部不可用,但对函数内部的任何函数都可用:

示例

可以从函数内的函数访问局部变量:

def myfunc():
  x = 300
  def myinnerfunc():
    print(x)
  myinnerfunc()

myfunc()
亲自试一试 »


全局作用域

在Python代码主体中创建的变量是全局变量,属于全局作用域。

全局变量可在任何作用域(全局和局部)内使用。

示例

在函数外部创建的变量是全局变量,任何人都可以使用:

x = 300

def myfunc():
  print(x)

myfunc()

print(x)
亲自试一试 »

命名变量

如果在函数内部和外部使用相同的变量名进行操作,Python 会将它们视为两个单独的变量,一个在全局作用域(函数外部)中可用,一个在局部作用域(函数内部)中可用:

示例

该函数将打印本地x,然后代码将打印全局x:

x = 300

def myfunc():
  x = 200
  print(x)

myfunc()

print(x)
亲自试一试 »

全局关键字

如果您需要创建全局变量,但被困在局部作用域内,您可以使用global关键字。

这个global关键字使变量成为全局变量。

示例

如果您使用global关键字,该变量属于全局作用域:

def myfunc():
  global x
  x = 300

myfunc()

print(x)
亲自试一试 »

另外,使用global如果要更改函数内的全局变量,请使用关键字。

示例

要更改函数内全局变量的值,请使用global关键字:

x = 300

def myfunc():
  global x
  x = 200

myfunc()

print(x)
亲自试一试 »