您当前的位置: 首页 >  Python

RuiH.AI

暂无认证

  • 0浏览

    0关注

    274博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Python: 在函数中使用全局变量

RuiH.AI 发布时间:2022-07-30 16:15:32 ,浏览量:0

Python: 在函数中使用全局变量
  • 前言
  • python全局变量
  • 函数中使用全局变量
    • 读取
    • 修改
    • 局部作用域

前言

本篇记录一个python问题,在函数中使用全局变量

python全局变量

与C++相仿,python也有全局变量,并且在函数外定义的变量就是全局变量:

a = 5  # 全局变量
def func():
	return
函数中使用全局变量 读取

在函数中可以直接读取全局变量的值:

a = 5  # 全局变量
print(id(a))

def func():
	print(a)
	print(id(a))
'''
94648897326528
5
94648897326528
'''
修改

在函数中不能直接修改全局变量的值,如下所示:

a = 5  # 全局变量

def func():
	a=a+1

func()

将报UnboundLocalError: local variable 'a' referenced before assignment,也就是说func函数认为a是一个局部变量,但没有被赋值。

正确做法是在函数中使用global关键字提示编译器a是一个已定义的全局变量:

a = 5  # 全局变量

def func():
	global a
	a=a+1  # 6

func()
print(a)
'''
6
'''

可以看到,全局变量a被函数修改了。

局部作用域

与C++类似,可以在函数的局部作用域下,定义与全局变量同名的局部变量:

a = 5  # 全局变量

def func():
	a=5
	a=a+1  # 6
	print(a)

func()
print(a)
'''
6
5
'''

局部变量被改变不会影响同名全局变量的值(因为它们的地址不同。)

关注
打赏
1658651101
查看更多评论
立即登录/注册

微信扫码登录

0.0355s