前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Python】4个方面了解全局变量(修改全局变量值、位置、代码结构、命名建议)

【Python】4个方面了解全局变量(修改全局变量值、位置、代码结构、命名建议)

原创
作者头像
python自学网
发布2022-05-23 15:11:27
6.8K0
发布2022-05-23 15:11:27
举报

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

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

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

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

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

代码体验:

代码语言:python
复制
# 定义一个全局变量
num = 99

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

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

demo1()
demo2()

执行结果:

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

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

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

代码体验1:

代码语言:python
复制
# 定义一个全局变量
num = 99


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

demo1()

执行结果:

代码体验2:

代码语言:python
复制
# 定义一个全局变量
num = 99


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


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

demo1()

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

执行结果:报错

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

代码体验3:正确位置

代码语言:python
复制
# 定义一个全局变量
num = 99
# 再定义一个全局变量
title = 'Python自学网'
# 再定义一个全局变量
name = 'lily'


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


demo1()

执行结果:

代码结构示意图如下:

三、全局变量命名的建议

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

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

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

代码体验:

代码语言:python
复制
# 定义一个全局变量
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/

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、在函数内部修改全局变量的值
  • 二、全局变量定义的位置和代码结构
  • 三、全局变量命名的建议
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档