初识 Python:global 关键字

在 Python 中,global 关键字允许你修改当前范围之外的变量。它用于创建全局变量并在本地上下文中更改变量。

-- Programiz

致谢

编译自 | https://www.programiz.com/python-programming/global-keyword

作者 | Programiz

译者 | MjSeven 共计翻译:28篇 贡献时间:80 天

在读这篇文章之前,确保你对Python 全局、本地和非本地变量

[1]

有一定的基础。

global 关键字简介

在 Python 中, 关键字允许你修改当前范围之外的变量。它用于创建全局变量并在本地上下文中更改变量。

global 关键字的规则

在 Python 中,有关 关键字基本规则如下:

◈ 当我们在一个函数中创建一个变量时,默认情况下它是本地变量。

◈ 当我们在一个函数之外定义一个变量时,默认情况下它是全局变量。你不必使用 关键字。

◈ 我们使用 关键字在一个函数中来读写全局变量。

◈ 在一个函数外使用 关键字没有效果。

使用 global 关键字(含示例)

我们来举个例子。

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

运行程序,输出为:

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

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

运行程序,输出显示错误:

这是因为在函数中,我们只能访问全局变量但是不能修改它。

解决的办法是使用 关键字。

示例 3:使用 global 在函数中改变全局变量

运行程序,输出为:

在上面的程序中,我们在 函数中定义了 将其作为全局关键字。

然后,我们给变量 增加 ,即 。之后,我们调用了 函数。最后,打印全局变量 。

正如我们所看到的,在函数外的全局变量也发生了变化,。

Python 模块中的全局变量

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

以下是如何通过 Python 模块共享全局变量。

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

创建 文件来存储全局变量

创建 文件来改变全局变量

创建 文件来测试其值的变化

运行 ,输出为:

在上面,我们创建了三个文件: , 和 。

在 模块中保存了全局变量 和 。在 文件中,我们导入了 模块并改变了 和 的值。同样,在 文件,我们导入了 和 模块。最后,我们打印并测试全局变量的值,无论它们是否被改变。

在嵌套函数中的全局变量

以下是如何在嵌套函数中使用全局变量。

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

输出为:

在上面的程序中,我们在一个嵌套函数 中声明了全局变量。在 函数中, 变量 没有全局关键字的作用。

调用 之前和之后, 变量 取本地变量的值,即 。在 函数之外,变量 会取在函数 中的值,即 。这是因为在 中,我们对 使用 关键字创建了一个全局变量(本地范围)。

如果我们在 函数内进行了任何修改,那么这些修改就会出现在本地范围之外,即 。

via:https://www.programiz.com/python-programming/global-keyword

作者:programiz

[3]

译者:MjSeven校对:wxy

本文由LCTT原创编译,Linux中国荣誉推出

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180421B0AOK200?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券