Python 关键字global全局变量详解
创始人
2025-05-29 06:59:00

变量作用域

一般在函数体外定义的变量成为全局变量,在函数内部定义的变量称为局部变量。

全局变量所有作用域都可用,局部变量只能在本函数可用,变量的使用顺序是,局部变量 > 全局变量, 也就是说:优先使用局部变量

那么问题来了, 如果想在函数内使用全局变量,或改变全局变量的值, 应该怎么做呢?

global关键字

为了解决函数内使用全局变量的问题,python增加了global关键字, 利用它的特性, 可以指定变量的作用域。

global关键字的作用:声明变量var是全局的

代码实例

实例1:

函数优先使用局部变量

1

2

3

4

5

6

str = 'global'

def func1():

    str = 'local'

    print(str)

func1()

print(str)

结果:

1

2

local

global

实例2:

在没有局部变量的情况下, 使用全局变量

1

2

3

4

5

str = 'global'

def func1():

    print(str)

func1()

print(str)

结果:

1

2

global

global

实例3:

改变全局变量的值, 通过实例1可以看到, 函数内赋值并不能改变全局变量的值,所以需要global关键字

1

2

3

4

5

6

7

str = 'global'

def func1():

    global str

    str = 'local'

    print(str)

func1()

print(str)

结果:

1

2

local

local

其他用法

你可以使用同一个global语句指定多个全局变量。

例如

1

global var1, var2, var3

特殊类型

字符串、数字类型是不能被在局部被修改的,除非使用global关键字,但是 列表,字典是可修改,但不能重新赋值,如果需要重新赋值,需要在函数内部使用global定义全局变量

代码实例1:

1

2

3

4

5

6

list = ['global''pythontab.com']

def func1():

    list.append('bbs.pythontab.com')

    print(list)

func1()

print(list)

结果:

1

2

['global''pythontab.com''bbs.pythontab.com']

['global''pythontab.com''bbs.pythontab.com']

发现上面的list并没有使用global但是值却改变了, 说明列表是可以在局部被修改的

代码实例2:

1

2

3

4

5

6

list = ['global''pythontab.com']

def func1():

    list = ['docs.pythontab.com']

    print(list)

func1()

print(list)

结果:

1

2

['docs.pythontab.com']

['global''pythontab.com']

局部变量赋值不能改变全局变量的值

代码实例3:

1

2

3

4

5

6

7

list = ['global''pythontab.com']

def func1():

    global list

    list = 'docs.pythontab.com'

    print(list)

func1()

print(list)

结果:

1

2

docs.pythontab.com

docs.pythontab.com

使用了global关键字后, 变量被重新赋值

相关内容

热门资讯

电动汽车十大名牌排名及价格,纯... 今天给各位分享电动汽车十大名牌排名及价格,纯电动汽车排名及价格...的知识,其中也会对电动汽车十大名...
长安奔奔mini保养(长安奔奔... 本篇文章极速百科给大家谈谈长安奔奔mini保养,以及长安奔奔mini保养手册对应的知识点,希望对各位...
Python-06:异常、模块... 文章目录一、异常1.1 异常的概念1.2 捕获异常的语法1.3 代码演示1.4 异常的传递性二、模块...
满州是哪里(日本口中的满洲是哪... 今天给各位分享满州是哪里的知识,其中也会对日本口中的满洲是哪里进行解释,如果能碰巧解决你现在面临的问...
义乌交通违章查询,浙江义乌交通... 今天给各位分享义乌交通违章查询,浙江义乌交通违章查询的知识,其中也会对义乌违章查询入口进行解释,如果...
WEB安全 DIV CSS基础 1.DIV和CSS样式             层叠样式表(英文全称:Cascadin...
灵感来自游艇?聊天津一汽骏派C... 今天给各位分享灵感来自游艇?聊天津一汽骏派CX65设计的知识,其中也会对一汽骏派suv进行解释,如果...
汽车维修哪个学校比较好?(学汽... 今天给各位分享汽车维修哪个学校比较好?的知识,其中也会对学汽车维修哪个学校好,快来看看!进行解释,如...
科学技术的两面性是什么(科学技... 本篇文章极速百科给大家谈谈科学技术的两面性是什么,以及科学技术的两面性发言稿50字对应的知识点,希望...
京沪高速实时路况(京沪高速实时... 本篇文章极速百科给大家谈谈京沪高速实时路况,以及京沪高速实时路况今天封闭没有对应的知识点,希望对各位...
[刷题 java版] | 字节... 1.万万没想到之聪明的编辑我叫王大锤,是一家出版社的编辑。我负责校对投稿来的英文稿件&...
#科研筑基# 吴恩达深度学习 ... 引例这门课的名字叫深度学习,为什么我们要先介绍神经网络呢?那是因为&#x...
vue3一天内快速学习 文章目录简介vue3 学习安装项目结构基础知识模版语法{{}}v-htmlv-bind渲染展示v-i...
特斯拉专题研究报告:特斯拉第三... 今天给各位分享特斯拉专题研究报告:特斯拉第三篇章展望的知识,其中也会对特斯拉研究成果进行解释,如果能...
高速免费提前几个小时(高速免费... 今天给各位分享高速免费提前几个小时的知识,其中也会对高速免费提前几个小时上高速进行解释,如果能碰巧解...
卡罗拉和朗逸怎么选哪个更值得入... 今天给各位分享卡罗拉和朗逸怎么选哪个更值得入手的知识,其中也会对卡罗拉和朗逸买哪个好更好进行解释,如...
MAC QT OpenGL 图... 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >> OpenGL ES...
海藻粉是什么东西(海藻粉是什么... 今天给各位分享海藻粉是什么东西的知识,其中也会对海藻粉是什么东西 宝宝能吃吗进行解释,如果能碰巧解决...
关于MGRE的OSPF建邻 我们以实验的方式直观的看一下OSPF在MGRE中的建邻。 首先介绍一下接口网络类型。 MGRE嘴上形...
MySQL和MariaDB,它... 目录 一、MySQL简介 二、MariaDB简介 三、什么是MariaDB? 四、为什么推出Mari...
羡慕的意思是什么(羡慕的意思是... 本篇文章极速百科给大家谈谈羡慕的意思是什么,以及羡慕的意思是什么最佳答案对应的知识点,希望对各位有所...
发蜡有什么作用(发蜡有什么作用... 今天给各位分享发蜡有什么作用的知识,其中也会对发蜡有什么作用和用途进行解释,如果能碰巧解决你现在面临...
欧洲杯几月开始几月结束(欧洲杯... 今天给各位分享欧洲杯几月开始几月结束的知识,其中也会对欧洲杯啥时候开始啥时候结束进行解释,如果能碰巧...
横滨轮胎型号及价格表(横滨轮胎... 今天给各位分享横滨轮胎型号及价格表的知识,其中也会对横滨轮胎型号性能介绍进行解释,如果能碰巧解决你现...
基于深度学习的跌倒检测系统(U... 摘要:跌倒监测系统用于智能化监测是否有行人跌倒,通过YOLOv5的深度学...
基于STM32 + FPGA ... 针对在软体机器人控制时,多电机协同控制过程中难度大、通用性差、协同性差等缺点ÿ...
【Docker】什么是Dock... 文章目录Docker出现的背景解决问题docker理念容器与虚拟机比较容器发展简史传统虚拟机技术容器...
五十万以内买SUV,这几款的第... 本篇文章极速百科给大家谈谈五十万以内买SUV,这几款的第三排都能坐成年人,以及五十万左右七座suv对...
一文说透!椭圆机适合什么人?对... 今天给各位分享一文说透!椭圆机适合什么人?对比动感单车、划船机与...的知识,其中也会对椭圆机是动感...
【莱芜金点子DM报纸广告】3月... 今天给各位分享【莱芜金点子DM报纸广告】3月30日电子版的知识,其中也会对莱芜金点子广告电子版202...