Python 作用域

變量僅在創建區域內可用。這稱為作用域。

局部作用域

在函數內部創建的變量屬于該函數的局部作用域,并且只能在該函數內部使用。

實例

在函數內部創建的變量在該函數內部可用:

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

運行實例

函數內部的函數

如上例中所示,變量 x 在函數外部不可用,但對于函數內部的任何函數均可用:

實例

能夠從函數內的一個函數訪問局部變量:

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

運行實例

全局作用域

在 Python 代碼主體中創建的變量是全局變量,屬于全局作用域。

全局變量在任何范圍(全局和局部)中可用。

實例

在函數外部創建的變量是全局變量,任何人都可以使用:

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

運行實例

命名變量

如果在函數內部和外部操作同名變量,Python 會將它們視為兩個單獨的變量,一個在全局范圍內可用(在函數外部),而一個在局部范圍內可用(在函數內部):

實例

該函數將打印局部變量 x,然后代碼還會打印全局變量 x:

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

運行實例

Global 關鍵字

如果您需要創建一個全局變量,但被卡在本地作用域內,則可以使用 global 關鍵字。

global 關鍵字使變量成為全局變量。

實例

如果使用 global 關鍵字,則該變量屬于全局范圍:

def myfunc():
  global x
  x = 100
myfunc()
print(x)

運行實例

另外,如果要在函數內部更改全局變量,也請使用 global 關鍵字。

實例

要在函數內部更改全局變量的值,請使用 global 關鍵字引用該變量:

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

運行實例