美文网首页
【Python】全局变量(修改值、定义位置、代码结构、命名建议)

【Python】全局变量(修改值、定义位置、代码结构、命名建议)

作者: 可可里西 | 来源:发表于2022-05-23 15:41 被阅读0次

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

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

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

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

global关键字会告诉解释器后面的变量是一个全局变量,<typo id="typo-192" data-origin="再" ignoretag="true">再</typo>使用赋值语句时,就不会创建局部变量

代码体验:

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

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

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

demo1()
demo2()

执行结果:

图片0.png

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

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

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

代码体验1:

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

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

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

demo1()

执行结果:

图片1.png

代码体验2:

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

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

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

demo1()

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

执行结果:报错

图片2.png

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

代码体验3:正确位置

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

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

demo1()

执行结果:

图片3.png

代码结构示意图如下:

图片4.png

三、全局变量命名的建议

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

全局变量名前应该增加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

图片5.png 图片6.png

Python教程文章借鉴来源:http://www.wakey.com.cn/

相关文章

  • 【Python】全局变量(修改值、定义位置、代码结构、命名建议)

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

  • python函数

    函数 全局变量 获取全局变量python获取全局变量直接获取 修改全局变量python不允许直接修改全局变量如果要...

  • 变量的基本类型与零值 golang

    最佳实践规范 go程序编写规范: 首行命名这个文件属于哪个包 往下再导入其他包 定义常量 定义全局变量 定义结构 ...

  • HiveQL 数据定义:修改表结构

    修改表结构• Alter Table 语句• 重命名表• 修改列的名字、类型、位置、注释• 增加/更新列• 增加表...

  • python改变全局变量

    在python中,一个类中的全局变量在被引用后做修改,再次引用这个变量,是原始值还是上次引用修改后的值?demo测...

  • Python函数

    定义函数 def 函数名():"函数文档说明"函数代码(函数要执行的代码) 可变类型的全局变量可以在方法里直接修改...

  • 2019-09-19 Python 3错误UnboundLoca

    这个错误是没有定义全局变量,定义一下全局变量即可。 参考 function - Python 3: Unbound...

  • 2018-11-27

    函数的变量 局部变量:函数中定义的变量 全局变量:代码顶部定义的变量 函数的返回值 函数被调用后会返回一个指定的值...

  • JS代码优化浅谈

    本文主要介绍一下如何让代码整洁可读的几点建议,总体是为了让代码逻辑及结构更加清晰,增加可读性。 一、命名一切命名都...

  • iOS 全局变量和局部变量

    在C语言中,变量从作用范围分为全局变量和局部变量。全局变量在定义之后所有的函数均可以使用,只要前面的代码修改了,那...

网友评论

      本文标题:【Python】全局变量(修改值、定义位置、代码结构、命名建议)

      本文链接:https://www.haomeiwen.com/subject/fabrprtx.html