<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # Python 全局,局部和非局部變量 > 原文: [https://www.programiz.com/python-programming/global-local-nonlocal-variables](https://www.programiz.com/python-programming/global-local-nonlocal-variables) #### 在本教程中,您將了解 Python 全局變量,局部變量,非局部變量以及在何處使用它們。 ## 全局變量 在 Python 中,在函數外部或全局范圍內聲明的變量稱為全局變量。 這意味著可以在函數內部或外部訪問全局變量。 讓我們看一下如何在 Python 中創建全局變量的示例。 ### 示例 1:創建一個全局變量 ```py x = "global" def foo(): print("x inside:", x) foo() print("x outside:", x) ``` **輸出** ```py x inside: global x outside: global ``` 在上面的代碼中,我們創建了`x`作為全局變量,并定義了`foo()`以打印全局變量`x`。 最后,我們稱為`foo()`,它將打印`x`的值。 如果要在函數內更改`x`的值怎么辦? ```py x = "global" def foo(): x = x * 2 print(x) foo() ``` **輸出**: ```py UnboundLocalError: local variable 'x' referenced before assignment ``` 輸出顯示錯誤,因為 Python 將`x`視為局部變量,而`x`也未在`foo()`內部定義。 為此,我們使用`global`關鍵字。 訪問 [Python `global`關鍵字](/python-programming/global-keyword)了解更多信息。 * * * ## 局部變量 在函數體內或局部范圍內聲明的變量稱為局部變量。 ### 示例 2:訪問范圍之外的局部變量 ```py def foo(): y = "local" foo() print(y) ``` **輸出**: ```py NameError: name 'y' is not defined ``` 輸出顯示錯誤,因為我們試圖在全局范圍內訪問局部變量`y`,而局部變量僅在`foo()`或局部范圍內起作用。 * * * 讓我們看一個有關如何在 Python 中創建局部變量的示例。 ### 示例 3:創建局部變量 通常,我們在函數內部聲明一個變量以創建局部變量。 ```py def foo(): y = "local" print(y) foo() ``` **輸出**: ```py local ``` 讓我們看一下[較早的問題](#change-x),其中`x`是全局變量,我們想在`foo()`內部修改`x`。 * * * ## 全局和局部變量 在這里,我們將展示如何在同一代碼中使用全局變量和局部變量。 ### 示例 4:在同一代碼中使用全局變量和局部變量 ```py x = "global " def foo(): global x y = "local" x = x * 2 print(x) print(y) foo() ``` **輸出**: ```py global global local ``` 在上面的代碼中,我們在`foo()`中將`x`聲明為全局變量,并將`y`聲明為局部變量。 然后,我們使用乘法運算符`*`修改全局變量`x`,并打印`x`和`y`。 調用`foo()`后,`x`的值變為`global global`,因為我們使用`x * 2`打印兩次`global`。 之后,我們打印局部變量`y`的值,即`local`。 * * * ### 示例 5:具有相同名稱的全局變量和局部變量 ```py x = 5 def foo(): x = 10 print("local x:", x) foo() print("global x:", x) ``` **輸出**: ```py local x: 10 global x: 5 ``` 在上面的代碼中,我們為全局變量和局部變量使用了相同的名稱`x`。 當我們打印相同的變量時,我們會得到不同的結果,因為在兩個范圍內都聲明了變量,即`foo()`內的局部作用域和`foo()`之外的全局作用域。 當我們在`foo()`中打印變量時,它輸出`local x: 10`。 這稱為變量的局部作用域。 類似地,當我們在`foo()`外部打印變量時,它將輸出`global x: 5`。 這稱為變量的全局范圍。 * * * ## 非局部變量 非局部變量用于未定義局部范圍的嵌套函數中。 這意味著該變量不能位于本地范圍或全局范圍內。 讓我們來看一個如何在 Python 中創建全局變量的示例。 我們使用`nonlocal`關鍵字創建非局部變量。 ### 示例 6:創建一個非局部變量 ```py def outer(): x = "local" def inner(): nonlocal x x = "nonlocal" print("inner:", x) inner() print("outer:", x) outer() ``` **輸出**: ```py inner: nonlocal outer: nonlocal ``` 在上面的代碼中,有一個嵌套的`inner()`函數。 我們使用`nonlocal`關鍵字創建一個非局部變量。`inner()`函數在另一個函數`outer()`的范圍內定義。 **注意**:如果我們更改非局部變量的值,則更改將顯示在局部變量中。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看