日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
初識Python:global關(guān)鍵字

在讀這篇文章之前,確保你對 Python 全局、本地和非本地變量 有一定的基礎(chǔ)。

創(chuàng)新互聯(lián)公司專注于企業(yè)全網(wǎng)營銷推廣、網(wǎng)站重做改版、東風網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、H5頁面制作成都商城網(wǎng)站開發(fā)、集團公司官網(wǎng)建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為東風等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

global 關(guān)鍵字簡介

在 Python 中,global 關(guān)鍵字允許你修改當前范圍之外的變量。它用于創(chuàng)建全局變量并在本地上下文中更改變量。

global 關(guān)鍵字的規(guī)則

在 Python 中,有關(guān) global 關(guān)鍵字基本規(guī)則如下:

  • 當我們在一個函數(shù)中創(chuàng)建一個變量時,默認情況下它是本地變量。
  • 當我們在一個函數(shù)之外定義一個變量時,默認情況下它是全局變量。你不必使用 global 關(guān)鍵字。
  • 我們使用 global 關(guān)鍵字在一個函數(shù)中來讀寫全局變量。
  • 在一個函數(shù)外使用 global 關(guān)鍵字沒有效果。

使用 global 關(guān)鍵字(含示例)

我們來舉個例子。

示例 1:從函數(shù)內(nèi)部訪問全局變量

 
 
 
  1. c = 1 # 全局變量
  2. def add():
  3. print(c)
  4. add()

運行程序,輸出為:

 
 
 
  1. 1

但是我們可能有一些場景需要從函數(shù)內(nèi)部修改全局變量。

示例 2:在函數(shù)內(nèi)部修改全局變量

 
 
 
  1. c = 1 # 全局變量
  2. def add():
  3. c = c + 2 # 將 c 增加 2
  4. print(c)
  5. add()

運行程序,輸出顯示錯誤:

 
 
 
  1. UnboundLocalError: local variable 'c' referenced before assignment

這是因為在函數(shù)中,我們只能訪問全局變量但是不能修改它。

解決的辦法是使用 global 關(guān)鍵字。

示例 3:使用 global 在函數(shù)中改變?nèi)肿兞?/h4>
 
 
 
  1. c = 0 # global variable
  2. def add():
  3. global c
  4. c = c + 2 # 將 c 增加 2
  5. print("Inside add():", c)
  6. add()
  7. print("In main:", c)

運行程序,輸出為:

 
 
 
  1. Inside add(): 2
  2. In main: 2

在上面的程序中,我們在 add() 函數(shù)中定義了 c 將其作為全局關(guān)鍵字。

然后,我們給變量 c 增加 2,即 c = c + 2。之后,我們調(diào)用了 add() 函數(shù)。***,打印全局變量 c

正如我們所看到的,在函數(shù)外的全局變量也發(fā)生了變化,c = 2

Python 模塊中的全局變量

在 Python 中,我們創(chuàng)建一個單獨的模塊 config.py 來保存全局變量并在同一個程序中的 Python 模塊之間共享信息。

以下是如何通過 Python 模塊共享全局變量。

示例 4:在Python模塊中共享全局變量

創(chuàng)建 config.py 文件來存儲全局變量

 
 
 
  1. a = 0
  2. b = "empty"

創(chuàng)建 update.py 文件來改變?nèi)肿兞?/p>

 
 
 
  1. import config
  2. config.a = 10
  3. config.b = "alphabet"

創(chuàng)建 main.py 文件來測試其值的變化

 
 
 
  1. import config
  2. import update
  3. print(config.a)
  4. print(config.b)

運行 main.py,輸出為:

 
 
 
  1. 10
  2. alphabet

在上面,我們創(chuàng)建了三個文件: config.py, update.pymain.py。

config.py 模塊中保存了全局變量 ab。在 update.py 文件中,我們導入了 config.py 模塊并改變了 ab 的值。同樣,在 main.py 文件,我們導入了 config.pyupdate.py 模塊。***,我們打印并測試全局變量的值,無論它們是否被改變。

在嵌套函數(shù)中的全局變量

以下是如何在嵌套函數(shù)中使用全局變量。

示例 5:在嵌套函數(shù)中使用全局變量

 
 
 
  1. def foo():
  2. x = 20
  3. def bar():
  4. global x
  5. x = 25
  6. print("Before calling bar: ", x)
  7. print("Calling bar now")
  8. bar()
  9. print("After calling bar: ", x)
  10. foo()
  11. print("x in main : ", x)

輸出為:

 
 
 
  1. Before calling bar: 20
  2. Calling bar now
  3. After calling bar: 20
  4. x in main : 25

在上面的程序中,我們在一個嵌套函數(shù) bar() 中聲明了全局變量。在 foo() 函數(shù)中, 變量 x 沒有全局關(guān)鍵字的作用。

調(diào)用 bar() 之前和之后, 變量 x 取本地變量的值,即 x = 20。在 foo() 函數(shù)之外,變量 x 會取在函數(shù) bar() 中的值,即 x = 25。這是因為在 bar() 中,我們對 x 使用 global 關(guān)鍵字創(chuàng)建了一個全局變量(本地范圍)。

如果我們在 bar() 函數(shù)內(nèi)進行了任何修改,那么這些修改就會出現(xiàn)在本地范圍之外,即 foo()。


當前標題:初識Python:global關(guān)鍵字
網(wǎng)頁網(wǎng)址:http://www.dlmjj.cn/article/djihshd.html