global、nonlocal 作用域

一句話:
global:你要重新賦值,就要聲明;不聲明,就只能引用變量
nonlocal: 不管你用,還是賦值,都需要聲明!!!
注: 這裏的用的意思是:使用該變量做運算,但是 不改變 該 變量名 的 原始值
    賦值的意思是:將 該 變量名 重新 賦一個 新值!!!

global: 

使用global關鍵字聲明: 變量名     -----> 爲全局變量

例: global  a

單層函數內部使用到外部全局變量時,如果只是引用變量,不重新複製,不需要聲明global;如果用到全局變量,並且重新賦值,就需要global聲明變量名

在函數內部也可以使用global關鍵字聲明一個全局變量。(有則修改重新賦值,無則創建)

nonlocal:使用在嵌套函數中

內層函數引用外層函數變量時(非全局),需要使用nonlocal關鍵字聲明,纔可以對外層變量進行使用和重新賦值。如果不聲明nonlocal 會繼續向外層函數尋找該變量名,直到找到全局變量爲止。

如果沒有關鍵字的聲明,就是在該函數內部創建一個新的變量,與   外層和全局  的相同變量名的變量無關。

具體請參考鏈接:https://www.cnblogs.com/z360519549/p/5172020.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章