Python關鍵字global和nolocal有什么關系?Python中global與nolocal的區別是什么

在python之中有兩個關鍵字能夠用來改變變量的作用域以及命名空間 , 它們就是global以及nolocal , 但是它們之間也是有一點差異和區別的 。下文會來詳細的給大家講解一下二者之間的關系以及區別 , 想要學習或者了解的小伙伴就一定要仔細閱讀了 。

Python關鍵字global和nolocal有什么關系?Python中global與nolocal的區別是什么


1.global關鍵字于nolocal關鍵字之前實際上是沒有任何關系的 , 只不過它們二者之間有一個共同點 , 那就是都能夠在作用域內去使用外層的變量 。
2.global與nolocal它們之間的區別就在于 , 雖然都是能夠在局部作用域內去使用外層變量 。不過global只能夠在當前作用域內去調用全局變量 , 并且這個當前作用域就要包含在全局之中 , 示例如下:
x = 1def outer():  global x  x += 1在以上的代碼示例之中變量x是定義在全局范圍內的 , 而只有在這個范圍內的函數outer里面才可以去調用global 。
3.當以上示例之中的函數內還有一個函數的時候就不能夠用global關鍵字了 , 從代碼示例來看比較好理解 , 如下所示:
def outer():  x = 1    within():      nolocal x      x -= 5在上面這種情況下函數within被稱為當前作用域 , 而函數outer則是外層作用域 , 再外面就是全局作用域了 。而within函數內無法去使用全局作用域內的變量 , 要使用外層作用域的變量x就得用到nolocal關鍵字 。
【Python關鍵字global和nolocal有什么關系?Python中global與nolocal的區別是什么】以上就是關于“Python關鍵字global和nolocal有什么關系?Python中global與nolocal的區別是什么”的全部內容了 , 希望對你有所幫助 。

    猜你喜歡