全局变量是在函数外部定义的变量(没有定义在某一个函数内),所有函数内部都可以使用这个变量。
提示:全局变量是可变的,在其他开发语言中,大多是不推荐使用全局变量的,因为可变范围太大,会导致程序后期不好维护。
一、在函数内部修改全局变量的值
如果在函数中需要修改全局变量,需要使用global关键字进行声明。
global关键字会告诉解释器后面的变量是一个全局变量,再使用赋值语句时,就不会创建局部变量
代码体验:
代码语言:python代码运行次数:0复制# 定义一个全局变量
num = 99
def demo1():
# 希望修改全局变量的值 -- 使用global声明一下变量即可
# global关键字会告诉解释器后面的变量是一个全局变量
# 再使用赋值语句时,就不会创建局部变量
global num
num = 10
print('demo1 ===> %d' % num)
def demo2():
print('demo2 ===> %d' % num)
demo1()
demo2()
执行结果:
二、全局变量定义的位置和代码结构
如果在开发中我们使用到了全局变量,应该把全局变量打在代码的什么位置。
为了保证所有的数据都能够正确使用到全局变量,应该将全局变量定义在其他函数的上方。
代码体验1:
代码语言:python代码运行次数:0复制# 定义一个全局变量
num = 99
def demo1():
print(' %d' % num)
print('%s' % title)
# 再定义一个全局变量
title = 'Python自学网'
demo1()
执行结果:
代码体验2:
代码语言:python代码运行次数:0复制# 定义一个全局变量
num = 99
def demo1():
print(' %d' % num)
print('%s' % title)
print('%s' % name)
# 再定义一个全局变量
title = 'Python自学网'
demo1()
# 再定义一个全局变量
name = 'lily'
执行结果:报错
注意:由于全局变量name是在调用函数之后才定义的,在执行函数时,变量还没有定义,所以程序会报错。
代码体验3:正确位置
代码语言:python代码运行次数:0复制# 定义一个全局变量
num = 99
# 再定义一个全局变量
title = 'Python自学网'
# 再定义一个全局变量
name = 'lily'
def demo1():
print(' %d' % num)
print('%s' % title)
print('%s' % name)
demo1()
执行结果:
代码结构示意图如下:
三、全局变量命名的建议
为了避免局部变量和全局变量出现混淆,在定义全局变量时,有些公司会有一些开发要求:如:
全局变量名前应该增加g_ 或者 gl_ 的前缀
提示:具体的要求格式,各公司要求可能会有些差异
代码体验:
代码语言:python代码运行次数:0复制# 定义一个全局变量
gl_num = 99
# 再定义一个全局变量
gl_title = 'Python自学网'
# 再定义一个全局变量
gl_name = 'lily'
def demo1():
# 如果局部变量的名字和全局变量的名字相同
# PyCharm会在局部变量的下方显示一个灰色的虚线,提示我们修改一个名字
num = 20
print(' %d' % num)
print('%s' % gl_title)
print('%s' % gl_name)
demo1()
小技巧:如何在修改全局变量名时,之前其他地方使用这个变量名同时被修改?
步骤:选中要被修改的名字 ----》 点击鼠标右键出现下图这个界面,鼠标悬浮在Refactor上 ---》点击Rename ------》在下一个界面上直接修改全局变量名 ------》 点击Refactor即可完成同步修改。
快速调出修改窗口:先须先选中要修改的名字 ----》 按住快捷键 Shift F6
文章借鉴来源:python自学网 http://www.wakey.com.cn/