亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> Python

Python 全局关键字

Python 全局关键字

在本文中,您将了解全局关键字、全局变量以及何时使用全局关键字。

在阅读本文之前,请确保您已掌握 Python 全局、局部和非局部变量的一些基础知识。


什么是全局关键字

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


全局关键字规则

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


全局关键字的使用

举个例子吧。

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

c = 1 # global variable

def add():
    print(c)

add()

当我们运行上面的程序时,输出会是:

1

但是,我们可能会遇到一些需要从函数内部修改全局变量的场景。


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

c = 1 # global variable
    
def add():
    c = c + 2 # increment c by 2
    print(c)

add()

当我们运行上面的程序时,输出显示错误:

UnboundLocalError: local variable 'c' referenced before assignment

这是因为我们只能访问全局变量,而不能从函数内部对其进行修改。

解决方案是使用 global 关键字。


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

c = 0 # global variable

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() 中的全局关键字 功能。

然后,我们增加变量 c2 ,即 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.pyupdate.py 模块。最后,我们打印并测试全局变量的值是否改变。


嵌套函数中的全局

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

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

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)

输出是:

Before calling bar: 20
Calling bar now
After calling bar: 20
x in main: 25

在上面的程序中,我们在嵌套函数 bar() 中声明了一个全局变量 . foo() 内 函数,x 没有全局关键字的影响。

调用bar()前后 , 变量 x 取局部变量的值,即 x = 20 . foo() 之外 函数,变量 x 将采用 bar() 中定义的值 功能即 x = 25 .这是因为我们使用了 global x 中的关键字 在 bar() 中创建全局变量 函数(本地范围)。

如果我们在 bar() 中进行任何更改 函数,更改出现在本地范围之外,即 foo() .


Python

  1. Python 数据类型
  2. Python 运算符
  3. Python pass 语句
  4. Python 函数参数
  5. Python 全局、局部和非局部变量
  6. Python字典
  7. Python 迭代器
  8. Python 闭包
  9. Python 日期时间
  10. Python - 概述
  11. Python - 变量类型
  12. Python - 数字