<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>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # Python `global`關鍵字 > 原文: [https://www.programiz.com/python-programming/global-keyword](https://www.programiz.com/python-programming/global-keyword) #### 在本文中,您將了解`global`關鍵字,`global`變量以及何時使用`global`關鍵字。 在閱讀本文之前,請確保您具有 [Python 全局,局部和非局部變量](/python-programming/global-local-nonlocal-variables)的一些基礎知識。 * * * ## 什么是`global`關鍵字 在 Python 中,`global`關鍵字允許您在當前作用域之外修改變量。 它用于創建全局變量并在局部上下文中對變量進行更改。 * * * ## `global`關鍵字規則 Python 中`global`關鍵字的基本規則是: * 當我們在函數內部創建變量時,默認情況下它是局部的。 * 當我們在函數外部定義變量時,默認情況下它是全局變量。 您不必使用`global`關鍵字。 * 我們使用`global`關鍵字在函數內部讀寫全局變量。 * 在函數外部使用`global`關鍵字無效。 * * * ## `global`關鍵字的使用 讓我們舉個例子。 #### 示例 1:從函數內部訪問全局變量 ```py c = 1 # global variable def add(): print(c) add() ``` 當我們運行上面的程序時,輸出將是: ```py 1 ``` 但是,在某些情況下,我們需要從函數內部修改全局變量。 * * * #### 示例 2:從函數內部修改全局變量 ```py c = 1 # global variable def add(): c = c + 2 # increment c by 2 print(c) add() ``` 當我們運行上面的程序時,輸出顯示錯誤: ```py UnboundLocalError: local variable 'c' referenced before assignment ``` 這是因為我們只能訪問全局變量,而不能從函數內部對其進行修改。 解決方案是使用`global`關鍵字。 * * * #### 示例 3:使用`global`從函數內部更改全局變量 ```py c = 0 # global variable def add(): global c c = c + 2 # increment by 2 print("Inside add():", c) add() print("In main:", c) ``` 當我們運行程序時,輸出將是: ```py Inside add(): 2 In main: 2 ``` 在以上程序中,我們將`c`定義為`add()`函數內部的全局變量。 然后,將變量`c`增加`1`,即`c = c + 2`。 之后,我們調用`add()`函數。 最后,我們打印全局變量`c`。 可以看到,函數`c = 2`之外的全局變量也發生了變化。 * * * ## 跨 Python 模塊的全局變量 在 Python 中,我們創建一個模塊`config.py`來保存全局變量,并在同一程序中的 Python 模塊之間共享信息。 這是我們如何在 python 模塊之間共享全局變量的方法。 #### 示例 4:跨 Python 模塊共享全局變量 創建一個`config.py`文件,以存儲全局變量 ```py a = 0 b = "empty" ``` 創建一個`update.py`文件,以更改全局變量 ```py import config config.a = 10 config.b = "alphabet" ``` 創建一個`main.py`文件,以測試值的變化 ```py import config import update print(config.a) print(config.b) ``` 當我們運行`main.py`文件時,輸出為 ```py 10 alphabet ``` 在上面,我們創建了三個文件:`config.py`,`update.py`和`main.py`。 模塊`config.py`存儲`a`和`b`的全局變量。 在`update.py`文件中,我們導入`config.py`模塊并修改`a`和`b`的值。 同樣,在`main.py`文件中,我們同時導入了`config.py`和`update.py`模塊。 最后,我們打印并測試全局變量的值,無論它們是否更改。 * * * ## 全局嵌套函數 這是在嵌套函數中使用全局變量的方法。 #### 示例 5:在嵌套函數中使用全局變量 ```py def foo(): x = 20 def bar(): global x x = 25 print("Before calling bar: ", x) print("Calling bar now") bar() print("After calling bar: ", x) foo() print("x in main: ", x) ``` 輸出為: ```py Before calling bar: 20 Calling bar now After calling bar: 20 x in main: 25 ``` 在上面的程序中,我們在嵌套函數`bar()`中聲明了一個全局變量。 在`foo()`函數內部,`x`對`global`關鍵字無效。 在調用`bar()`之前和之后,變量`x`采用局部變量的值,即`x = 20`。 在`foo()`函數之外,變量`x`將采用`bar()`函數中定義的值,即`x = 25`。 這是因為我們在`x`中使用了`global`關鍵字在`bar()`函數(局部范圍)內創建了全局變量。 如果我們在`bar()`函數內進行任何更改,則這些更改將顯示在本地范圍之外,即`foo()`。
                  <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>

                              哎呀哎呀视频在线观看