Python Global Keyword全局关键字

Python Global Keyword全局关键字

Python Global Keyword全局关键字

  在编程世界中,Python 中的全局变量意味着在整个程序中具有作用域,即全局变量值在整个程序中都可以访问,除非被隐藏。Python中的全局变量通常在程序的顶部声明。换句话说,在函数外部声明的变量称为全局变量。

Python Global Keyword全局关键字
Python Global Keyword全局关键字

  全局关键字是允许用户修改当前范围之外的变量的关键字。它用于在 Python 中从非全局范围(即函数内部)创建全局变量。仅当我们想要进行赋值或想要更改变量时,才在函数内部使用 global 关键字。

  在本文中,晓得博客将带您了解Python Global Keyword全局关键字。

  推荐:如何使用Python提取MAC地址

什么是Global Keyword全局关键字

  在 Python 中,global关键字允许您修改当前范围之外的变量。它用于创建全局变量并在局部上下文中更改变量。Python Global Keyword全局关键字的基本规则是:

  • 当我们在函数内部创建一个变量时,它默认是局部的。
  • 当我们在函数外定义一个变量时,它默认是全局的。您不必使用global关键字。
  • 我们使用global关键字在函数内读写全局变量。
  • 在函数外使用global关键字无效。

在Python中使用 global 关键字

1、从函数内部访问全局变量
c = 1 

def add():
    print(c)

add()

输出:
1

  当我们运行上面的程序时,输出将是1,但是,我们可能会遇到一些需要在函数内部修改全局变量的场景。

2、从函数内部修改全局变量
在Python中使用 global 关键字
Python Global Keyword全局关键字
c = 1 
    
def add():
    c = c + 2 
    print(c)

add()

输出:
UnboundLocalError: local variable 'c' referenced before assignment

  当我们运行上面的程序时,输出显示错误,这是因为我们只能访问全局变量而不能从函数内部修改它。解决方案是使用global关键字。

  推荐:如何将Python添加到Path环境变量

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()函数内的全局关键字。然后,我们增加变量C乘以2,即c = c + 2。之后,我们调用add()函数。最后,我们输出全局变量C.正如我们所看到的,函数外部的全局变量也发生了变化,c = 2

跨 Python 模块的全局变量

  在 Python 中,我们创建一个模块config.py来保存全局变量并在同一程序中跨 Python 模块共享信息。这是我们如何在 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.pyupdate.py, 和main.py.

  该模块config.py存储的全局变量一个b. 在update.py文件中,我们导入config.py模块并修改值一个b. 同样,在main.py文件中,我们同时导入config.pyupdate.py模块。最后,我们输出并测试全局变量的值是否被更改。

  推荐:在Python中使用SQL

全局变量嵌套函数

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

全局变量嵌套函数
Python Global Keyword全局关键字
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对 global 关键字没有影响。在调用之前和之后bar(),变量X取局部变量的值即x = 20。在foo()函数之外,变量X将采用bar()函数 ie中定义的值x = 25。这是因为我们globalXbar()函数内部创建全局变量(局部作用域)。如果我们在函数内部进行任何更改bar(),这些更改将出现在本地范围之外,即foo().

推荐:零基础如何开始学习Python

给文章评分

晓得博客,版权所有丨如未注明,均为原创
晓得博客 » Python Global Keyword全局关键字

转载请保留链接:https://www.pythonthree.com/python-global-keyword/

Claude、Netflix、Midjourney、ChatGPT Plus、PS、Disney、Youtube、Office 365、多邻国Plus账号购买,ChatGPT API购买,优惠码XDBK,用户购买的时候输入优惠码可以打95折

Chatgpt-Plus注册购买共享账号
滚动至顶部