全局變量與局部變量及其關鍵字的使用


#局部變量:函數內部的變量是局部變量,作用域僅在函數內部可見(局部命名空間)
#全局變量:函數外部的變量是全局變量,作用域橫跨整個文件(全局命名空間)
#內置函數:內建命名空間

#global    :關鍵字:聲明全局變量獲修改全局變量
#nonlocal  :關鍵字:修改局部變量(當前函數上一層的局部變量)

#locals()  :返回字典,獲取當前作用域的所有內容
    如果在函數里:獲取locals()調用之前,該作用域出現的內容
    如果在函數外:獲取locals()打印返回值之前,該作用域出現的內容
#globals() :返回字典,獲取全局作用域的所有內容
    如果在函數里: 獲取globals()調用之前,全局作用域出現的內容
    如果在函數外: 獲取globals()打印返回值之前,全局作用域出現的內容

```
#找尋變量的調用順序采用LEGB原則(即就近原則)
B —— Builtin(Python);Python內置模塊的命名空間      (內建作用域)
G —— Global(module); 函數外部所在的命名空間        (全局作用域)
E —— Enclosing function locals;外部嵌套函數的作用域(嵌套作用域)
L —— Local(function);當前函數內的作用域            (局部作用域)
依據就近原則,從下往上 從里向外 依次尋找
```

### 內部函數

```
(1)內部函數可以直接在函數外部調用么
(2)調用外部函數后,內部函數可以在函數外部調用嗎
(3)內部函數可以在函數內部調用嗎
(4)內部函數在函數內部調用時,是否有先后順序
```

### 閉包

``` # 獲取閉包函數使用的變量  __closure__ , cell_contents

閉包的定義:  內函數使用外函數的局部變量,並且外函數將內函數返回出來的方法叫閉包,  返回的內函數叫 閉包函數.

閉包的特點:     內函數使用了外函數的局部變量,外函數的局部變量與內函數發生綁定,延長該變量的生命周期     (實際內存給它存儲了這個值,暫時不釋放)

閉包的意義:  閉包可以優先使用外函數中的變量,並對閉包中的值起到了封裝保護的作用.外部無法訪問. ```

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM