首頁 > 軟體

Python全域性變數關鍵字global的簡單使用

2022-06-22 14:01:27

簡介:

1、global是Python中的全域性變數關鍵字。

2、全域性變數是程式設計術語中的一種,源自於變數之分。

3、變數分為區域性與全域性,區域性變數又可稱之為內部變數。

4、由某物件或某個函數所建立的變數通常都是區域性變數,只能被內部參照,而無法被其它物件或函數參照。

5、全域性變數既可以是某物件函數建立,也可以是在本程式任何地方建立。全域性變數是可以被本程式所有物件或函數參照。

6、global關鍵字的作用是可以使得一個區域性變數為全域性變數。

案例1:全域性無法使用區域性變數。

# -*- coding: utf-8 -*-
def test1():
    # 區域性變數 local
    local_var = "a"
    print(local_var)

# 全域性無法使用區域性變數,只有對應的區域性作用域可用
# print(local_var)  # NameError: name 'local_var' is not defined

案例2:全域性變數,任意範圍均可使用。

global_var = 1


def test2():
    # 函數內使用全域性變數
    print(global_var + 1)

    def inner():
        # 巢狀函數內使用全域性變數
        print(global_var + 2)

    return global_var + 3  # 返回值內使用全域性變數


# 函數外使用全域性變數。
print(global_var)

案例3:函數內定義的區域性變數

def test3():
    # 函數內變數,但對於下級函數就是全域性變數,對於外部來說就是區域性變數
    func_var = 1
    def inner():
        print(func_var)
        return func_var
    return inner()

test3()

案例4:函數間global關鍵字的作用

def test4():
    # global關鍵字作用
    global func_var
    func_var = 2

    # 呼叫test5可以列印 func_var,去掉global會報錯。
    test5()
    print(test5.__globals__)


def test5():
    print(func_var)


test4()

案例5:不同檔案模組中的global,注意test6, test7為不同檔案。

# a.py
def test6():
    # global關鍵字作用
    global func_var
    func_var = 3
    

# b.py
from a import test6


def test7():
    print(test6.__globals__["func_var"])


# 不先執行test6的情況下會丟擲異常。KeyError: 'func_var'
test7()  # KeyError: 'func_var'

案例6:不同檔案模組中的global,注意test6, test7為不同檔案。

# a.py
def test6():
    # global關鍵字作用
    global func_var
    func_var = 4
    

# b.py
from a import test6


def test7():
    print(test6.__globals__["func_var"])


# 先執行test6的情況下,test可以使用 func_var
test6()
test7()  # 4

附:用global宣告多個變數需要用逗號分

num = 0
def cc():
 global count,num
 count = count+1
 num = num+2
 print(count,num)
cc()
3 2
# 可以函數中的global宣告能夠修改全域性變數
num
Out[24]: 2
# 
count
Out[25]: 3
在使用全域性變數的場合,也可用類變數代替
class C:
 count = 3
def cc():
 count = C.count+1
 print(count)
cc()
4

結論:

1、只匯入包,global定義的全域性變數沒有被加到globals裡面。

2、執行global所在的對應函數,global定義的函數內會存入對應變數,其他函數內則不會存入。

到此這篇關於Python全域性變數關鍵字global的簡單使用的文章就介紹到這了,更多相關Python全域性變數關鍵字global內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com