1-global 語句
- 如果需要在一個函數內修改全局變量,就使用 global 語句。
- 如果在函數的頂部有 global eggs 這樣的代碼,它就告訴 Python,“在這個函數中,eggs 指的是全局變
量,所以不要用這個名字創建一個局部變量。
1 def spam(): 2 global eggs # 使用global語句修改eggs為全局變量 3 eggs = 'spam' 4 eggs = 'global' 5 spam() 6 print(eggs)
7 spam
2-局部作用域和全局作用域
- 在被調用函數內賦值的變元和變量,處於該函數的“局部作用域”。
- 在所有函數之外賦值的變量,屬於“全局作用域”。
- 處於局部作用域的變量,被稱為“局部變量”。
- 處於全局作用域的變量,被稱為“全局變量”。
- 一個變量必是其中一種,不能既是局部的又是全局的。
3-有 4 條法則,來區分一個變量是處於局部作用域還是全局作用域:
- 1.如果變量在全局作用域中使用(即在所有函數之外),它就總是全局變量。
- 2.如果在一個函數中,有針對該變量的 global 語句,它就是全局變量。
- 3.否則,如果該變量用於函數中的賦值語句,它就是局部變量。
- 4.但是,如果該變量沒有用在賦值語句中,它就是全局變量。
1 def spam(): 2 global eggs 3 eggs = 'spam' # this is the global 4 5 def bacon(): 6 eggs = 'bacon' # this is a local 7 8 def ham(): 9 print(eggs) # this is the global 10 11 eggs = 42 # this is the global 12 spam() 13 print(eggs)