全局变量是在函数外部定义的变量(没有定义在某一个函数内),所有函数内部都可以使用这个变量。

提示:全局变量是可变的,在其他开发语言中,大多是不推荐使用全局变量的,因为可变范围太大,会导致程序后期不好维护。

一、在函数内部修改全局变量的值

如果在函数中需要修改全局变量,需要使用global关键字进行声明。

global关键字会告诉解释器后面的变量是一个全局变量,再使用赋值语句时,就不会创建局部变量

代码体验:

# 定义一个全局变量
num = 99

def demo1():
    # 希望修改全局变量的值 -- 使用global声明一下变量即可
    # global关键字会告诉解释器后面的变量是一个全局变量
    # 再使用赋值语句时,就不会创建局部变量
    global num
    num = 10
    print('demo1 ===> %d' % num)

def demo2():
    print('demo2 ===> %d' % num)

demo1()
demo2()

执行结果:

二、全局变量定义的位置和代码结构

如果在开发中我们使用到了全局变量,应该把全局变量打在代码的什么位置。

为了保证所有的数据都能够正确使用到全局变量,应该将全局变量定义在其他函数的上方。

代码体验1:

# 定义一个全局变量
num = 99


def demo1():
    print(' %d' % num)
    print('%s' % title)
  
    
# 再定义一个全局变量 
title = 'Python自学网'

demo1()

执行结果:

代码体验2:

# 定义一个全局变量
num = 99


def demo1():
    print(' %d' % num)
    print('%s' % title)
    print('%s' % name)


# 再定义一个全局变量
title = 'Python自学网'

demo1()

# 再定义一个全局变量
name = 'lily'

执行结果:报错

注意:由于全局变量name是在调用函数之后才定义的,在执行函数时,变量还没有定义,所以程序会报错。

代码体验3:正确位置

# 定义一个全局变量
num = 99
# 再定义一个全局变量
title = 'Python自学网'
# 再定义一个全局变量
name = 'lily'


def demo1():
    print(' %d' % num)
    print('%s' % title)
    print('%s' % name)


demo1()

执行结果:

代码结构示意图如下:

三、全局变量命名的建议

为了避免局部变量和全局变量出现混淆,在定义全局变量时,有些公司会有一些开发要求:如:

全局变量名前应该增加g_ 或者 gl_ 的前缀

提示:具体的要求格式,各公司要求可能会有些差异

代码体验:

# 定义一个全局变量
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/

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐