Python Global 关键字 |
您所在的位置:网站首页 › globals函数python › Python Global 关键字 |
Python 模块Python 全局,局部和非局部变量
Python Global 关键字
在阅读本文之前,请确保您已掌握Python全局,局部和非局部变量的一些基础知识。 全局关键字简介在Python中,global关键字允许您在当前作用域之外修改变量。它用于创建全局变量并在局部上下文中对该变量进行更改。 全局关键字规则Python中global关键字的基本规则是: 当我们在函数内部创建变量时,默认情况下它是局部的。 当我们在函数外部定义变量时,默认情况下它是全局的。您不必使用global关键字。 我们使用global关键字在函数内部读写全局变量。 在函数外使用global关键字无效 全局关键字的使用(示例)让我们举个实例。 示例1:从函数内部访问全局变量c = 1 # 全局变量 def add(): print(c) add()当我们运行上面的程序时,输出将是: 1但是,在某些情况下,我们需要从函数内部修改全局变量。 示例2:从函数内部修改全局变量c = 1 # 全局变量 def add(): c = c + 2 # increment c by 2 print(c) add()当我们运行上面的程序时,输出显示错误: UnboundLocalError: local variable 'c' referenced before assignment这是因为我们只能访问全局变量,而不能从函数内部对其进行修改。 解决方案是使用global关键字。 示例3:使用global从函数内部更改global变量c = 0 # 全局变量 def add(): global c c = c + 2 # increment by 2 print("Inside add():", c) add() print("In main:", c)当我们运行上面的程序时,输出将是: 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文件,以存储全局变量 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存储a和b的全局变量。在update.py文件中,我们导入config.py模块并修改a和b的值。同样,在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()。 Python 模块Python 全局,局部和非局部变量 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |