服务器之家

服务器之家 > 正文

Python全局变量global关键字详解

时间:2021-10-03 11:23     来源/作者:脚本之家

Python中的变量作用域

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

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

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

Python全局变量global关键字

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

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

代码实例

实例1:

函数优先使用局部变量

?
1
2
3
4
5
6
str = 'global'
def func1():
  str = 'local'
  print(str)
func1()
print(str)

结果:

local

global

实例2:

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

?
1
2
3
4
5
str = 'global'
def func1():
  print(str)
func1()
print(str)

结果:

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)

结果:

local

local

其他用法

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

例如

global var1, var2, var3

特殊类型

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

代码实例1:

?
1
2
3
4
5
6
list = ['global', 'zzvips.com']
def func1():
  list.append('www.zzvips.com')
  print(list)
func1()
print(list)

结果:

['global', 'zzvips.com', 'www.zzvips.com']

['global', 'zzvips.com', 'www.zzvips.com']

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

代码实例2:

?
1
2
3
4
5
6
list = ['global', 'zzvips.com']
def func1():
  list = ['docs.zzvips.com']
  print(list)
func1()
print(list)

结果:

['docs.zzvips.com']

['global', 'zzvips.com']

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

代码实例3:

?
1
2
3
4
5
6
7
list = ['global', 'zzvips.com']
def func1():
  global list
  list = 'docs.zzvips.com'
  print(list)
func1()
print(list)

结果:

docs.zzvips.com

docs.zzvips.com

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

本文主要讲解了Python全局变量global关键字的使用方法,更多关于Python全局变量的使用请查看下面的相关链接

标签:

相关文章

热门资讯

yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
2021年耽改剧名单 2021要播出的59部耽改剧列表
2021年耽改剧名单 2021要播出的59部耽改剧列表 2021-03-05
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总 2020-11-13
返回顶部