44.Python Global 关键字

Python Global 关键字

全局关键字简介

在Python中,global关键字允许您在当前作用域之外修改变量。它用于创建全局变量并在局部上下文中对该变量进行更改。

全局关键字规则

Python中global关键字的基本规则是:

  • 当我们在函数内部创建变量时,默认情况下它是局部的。

  • 当我们在函数外部定义变量时,默认情况下它是全局的。您不必使用global关键字。

  • 我们使用global关键字在函数内部读写全局变量。

  • 在函数外使用global关键字无效

全局关键字的使用(示例)

让我们举个实例。

示例1:从函数内部访问全局变量

c = # 全局变量

def add():
    print(c)

add()

但是,在某些情况下,我们需要从函数内部修改全局变量。

示例2:从函数内部修改全局变量

c = # 全局变量
    
def add():
    c = c + # increment c by 2
    print(c)

add()

示例3:使用global从函数内部更改global变量

c = # 全局变量

def add():
    global c
    c = c + # increment by 2
    print("Inside add():", c)

add()
print("In main:", c)

跨Python模块的全局变量

在Python中,我们创建一个模块config.py来保存全局变量,并在同一程序中的Python模块之间共享信息。

这是我们如何在python模块之间共享全局变量。

示例4:跨Python模块共享全局变量

创建一个config.py文件,以存储全局变量

a = 0
b = "empty"

创建一个update.py文件,更改全局变量

import config

config.a = 10
config.b = "alphabet"

创建一个main.py文件,以测试值的变化

import config
import update

print(config.a)
print(config.b)

当我们运行main.py文件时,输出将是

10
alphabet

在上文中,我们创建三个文件:config.py,update.py和main.py。

该模块config.py存储ab的全局变量。在update.py文件中,我们导入config.py模块并修改ab的值。同样,在main.py文件中,我们同时导入config.py和update.py模块。最后,我们打印并测试全局变量的值,无论它们是否更改。

嵌套函数中的全局变量

这是在嵌套函数中使用全局变量的方法。

示例5:在嵌套函数中使用全局变量

def foo():
    x = 20

    def bar():
        global x
        x = 25
    
    print("在调用bar之前: ", x)
    print("立即调用bar")
    bar()
    print("在调用bar之后: ", x)

foo()
print("x在主体内: ", x)


输出为:

在调用bar之前:  20
立即调用bar
在调用bar之后:  20
x在主体内:  25

在上面的程序中,我们在嵌套的函数bar()中声明全局变量。在foo()函数中,x对全局关键字没有影响。
在调用bar之前和之后,变量x接受局部变量的值,即x =20。在foo函数之外,变量x将采用bar函数中定义的值,即x =25。这是 因为我们在x中使用了global关键字在bar函数(局部作用域)内创建了全局变量。
如果我们在bar()函数中做了任何更改,那么这些更改就会出现在局部作用域之外,即foo()。

 

 

                                                                                                   

posted @ 2024-01-03 20:58  txwtech  阅读(50)  评论(0编辑  收藏  举报