Python入門(十八):變數作用域與巢狀函式
點選跳轉
《Python入門系列目錄》
1. 區域性變數和全域性變數
- 區域性變數:只能在特定的函式中可以訪問的變數
- 全域性變數:定義在所有函式最外面的變數
- 分辨區域性變數與全域性變數的規則
- 假設有一個變數為a,它出現在函式f()裡面,可以使用如下規則來判斷
- 如果有global關鍵字修飾變數a,則a為全域性變數
- 否則,假如a是引數或者出現在等號左邊,則a是區域性變數
- 否則,a與函式f外層的變數a的屬性相同
- 假設有一個變數為a,它出現在函式f()裡面,可以使用如下規則來判斷
- 區域性變數可以在外部被賦值,但不可以在外部被呼叫
2. 巢狀函式
- 巢狀函式是指在函式內定義的函式
- 定義在其他函式內部的函式稱為內建函式,包含有內建函式的函式稱為外部函式
- 巢狀函式如同區域性變數,是區域性函式,它只能在外層定義它的函式中使用
3. 巢狀函式下的區域性和全域性變數
- 假設有一個變數a,它出現在函式f裡面,可以使用如下規則來判斷
- 如果有global關鍵字修飾變數a,那麼不管函式f()是不是巢狀函式,a都為全域性變數
- 否則,假如a是引數或者出現在等號左邊,則a是區域性變數
- 否則,a應繼承上層函式中a的屬性
- 如果函式f不是巢狀函式,那麼a為全域性變數
- 如果函式f是巢狀函式,那麼a就是上層的a
a = 1 # 全域性變數
def F3():
def F():
global a # a是最外層的全域性變數
print("In F3's F, a =", a)
a = 3
F()
F3()
a = 1
def F4():
global a
def F():
a = 2 # a是F的區域性變數
print("In F4's F,a=", a)
F()
print("In F4, a =", a) # a是全域性變數
F4()
a = 1
def F5():
def F(): # a不是F的區域性變數,那就繼承上層函式中a的屬性
print("In F5's F,a =", a)
a = 3
F()
F5()
相關文章
- 函式(三)作用域之變數作用域、函式巢狀中區域性函式作用域、預設值引數作用域函式變數巢狀
- 1.5.2 Python函式巢狀及作用域Python函式巢狀
- Python 函式和變數作用域Python函式變數
- javascript基礎(函式與方法的區別,變數作用域,變數和函式的宣告提前,函式作用域)(十五)JavaScript函式變數
- python變數與變數作用域Python變數
- Python函式引數傳遞以及變數作用域Python函式變數
- 函式與作用域函式
- Python課堂筆記 第7章 包、模組、函式與變數作用域Python筆記函式變數
- 十二、變數作用域:區域性變數、全域性變數,函式版名片管理系統—新增函式文件變數函式
- 外層函式的變數直接被巢狀函式引用計算函式變數巢狀
- 『無為則無心』Python函式 — 30、Python變數的作用域Python函式變數
- golang常用手冊:陣列、變數作用域、函式Golang陣列變數函式
- 函式的動態引數 及函式巢狀函式巢狀
- 詳解Python的函式巢狀Python函式巢狀
- 變數物件與作用域鏈變數物件
- javascript函式讀取變數作用域簡單介紹JavaScript函式變數
- Go 入門 – 包,函式和變數Go函式變數
- python函式作用域簡介Python函式
- Python基礎之函式的巢狀Python函式巢狀
- Python巢狀定義函式增強reduce()函式功能Python巢狀函式
- 變數作用域變數
- 變數、作用域與記憶體變數記憶體
- 第 8 節:函式-函式巢狀呼叫與返回值函式巢狀
- Python中以函式為作用域Python函式
- 第 8 節:函式-函式型別與作用域函式型別
- 未知領域系列:Python基礎之迴圈,條件,包,函式,模組和變數作用域Python函式變數
- Java static變數、作用域、建構函式初始化順序Java變數函式
- javascript變數物件函式呼叫棧作用域閉包等細解!JavaScript變數物件函式
- JS內建物件,函式與作用域JS物件函式
- JS變數作用域JS變數
- SCSS 變數作用域CSS變數
- golang變數作用域Golang變數
- JS基礎難點總結(函式作用域,變數提升,物件,建構函式,this)全!!!JS函式變數物件
- 《前端實戰總結》之變數提升,函式宣告提升及變數作用域詳解前端變數函式
- golang 快速入門 [8.1]-變數型別、宣告賦值、作用域宣告週期與變數記憶體分配Golang變數型別賦值記憶體
- Python入門-函式Python函式
- Python動態引數、名稱空間、函式巢狀、global和nonlocalPython函式巢狀
- 神奇的函式作用域函式