python:LEGB識別符號解析順序
"""
LEGB查詢規則:
L locals 區域性變數,當前所在名稱空間(如函式,模組等) 注意,包括函式的引數(形參)
E Enclosing Function 閉包空間(外部巢狀函式的名稱空間)
G Globals 全域性變數,某個python模組的名稱空間
B Builtins python內建模組的名稱空間
"""
key=`Hello`#模組全域性
def test():
print(key)#全域性,輸出:Hello
def test2(key):
print(key,end=`***`)#區域性(形參),輸出 key引數傳入的值
key=key+str(512)
print(key)
def test3():
#print(key)
""" 這裡↑遵循LEGB規則解析識別符號key的時候,
在函式locals中發現了key=1024
key不再當作全域性變數解析,所以開啟註釋後這裡會報錯:
local variable `key` referenced before assignment
"""
key=1024#注意和前面的test函式比較
print(key)
def test4():
global key
#若要在模組內的某個函式裡面修改模組全域性變數,一定要有global關鍵字
key=1024
if __name__ == `__main__`:
test()
test2(`hi`)
test3()
test4()
test()
執行結果:
Hello
hi***hi512
1024
1024
Process finished with exit code 0
這個問題使用pycharm程式設計時候,編輯器是可以用高亮給你提示出來的……So,有個好的IDE真實省心省力啊O(∩_∩)O
相關文章
- python的識別符號Python符號
- 識別符號符號
- Android開發 - UUID 類通用唯一識別符號解析AndroidUI符號
- 使用去中心化識別符號 (DID) 作為識別符號元系統中心化符號
- python之uuid通用唯一識別符號模組PythonUI符號
- <Python>識別符號、變數的定義與使用Python符號變數
- Java資料型別、識別符號Java資料型別符號
- Python中的識別符號有哪些基礎原則?Python符號
- C語言-識別符號命名C語言符號
- 識別符號與關鍵字符號
- java基本無法-識別符號Java符號
- Python行結構與縮排、 識別符號和保留字Python符號
- Python中合法識別符號需要滿足什麼條件?Python符號
- python教程:屬性查詢順序,資料描述符Python
- SCSS &父選擇器識別符號CSS符號
- URI(統一資源識別符號)符號
- go——識別符號的命名規範Go符號
- 字串切片識別符號是什麼字串符號
- JavaSE 關鍵字和識別符號Java符號
- 1413: C語言合法識別符號C語言符號
- 關鍵字、資料型別、識別符號資料型別符號
- Python技術分享:Python中的識別符號有哪些基礎原則?Python符號
- 初識順序容器
- python運算子及優先順序順序Python
- JAVA-識別符號、變數、資料型別Java符號變數資料型別
- C++ 提示未宣告的識別符號C++符號
- js如何生成唯一識別符號UUIDJS符號UI
- C語言合法識別符號 hd 2024C語言符號
- java:識別符號 關鍵字 變數Java符號變數
- AppID 的英文全稱是 Application Identifier AppID(應用程式識別符號)GUID(全域性唯一識別符號)APPIDE符號GUI
- python 包引入順序Python
- C#程式碼識別符號命名規範C#符號
- 識別符號的命名規則和規範符號
- 2.4.2 Step 1: 指定例項識別符號 (SID)符號
- Java的識別符號與編碼規範Java符號
- dotnet core TargetFramework 解析順序探索Framework
- python 中 *符號Python符號
- Java註釋,識別符號,資料型別,型別轉換Java符號資料型別