python變數與變數作用域
- c語言中,變數的定義會為變數分配一塊記憶體,變數的記憶體地址不會發生改變,當變數的值發生改變時,改變的是對應記憶體地址中的值。
- python中,給變數賦值時,變數儲存的是一個物件的引用,如果想改變變數的值,其實改變的是變數儲存的引用,使變數指向了另一個物件。
- 在函式中執行賦值操作時,會建立一個區域性變數,如果想在函式中通過賦值‘=’改變一個全域性變數,則需要用關鍵字global申明,只要出現了‘=’操作符,則這個變數就是區域性變數,除非顯示申明為global。
- LEGB,在某一作用域內想使用某個變數時,會按照LEGB的順序來查詢,找不到則會報錯。
- 給函式傳參,函式的形參是一個區域性變數,這個區域性變數和傳入的實參都繫結在某一物件上,函式執行完後,將這個區域性變數會被解綁。
- 函式return後,接收的變數會繫結在return的物件上,return結束後會把原函式內繫結在這個物件上的變數解綁。