Python 中的全局变量

场景:python 包中有多个模块需要访问并修改同一个全局变量。

实现:

  1. 将全局变量单独保存在一个.py文件中;
  2. 在需要访问或修改的模块中导入该全局变量模块。

示例:

  1. 文件结构如下所示:
      /tests
       test_a.py
       test_b.py
       test_global.py
       test_main.py
  2. 各文件代码及含义如下所示:
# test_global.py
#定义全局变量
variable = 'const'
# test_a.py
# 将全局变量赋值为'A'
from tests import test_global
def a():
    test_global.variable = 'A'
# test_b.py
# 将全局变量赋值为'B'
from tests import test_global
def b():
    test_global.variable = 'B'
# test_main.py
# main函数
from tests import test_global
from tests.test_a import a
from tests.test_b import b
def main():
    print(test_global.variable)  # 打印全局变量的初值
    a()  # 更改全局变量为'A'并打印
    print(test_global.variable)
    b()  # 更改全局变量为'B'并打印
    print(test_global.variable)

main()
  1. 打印结果如下:
const
A
B
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在Python可以在函数中直接使用定义的全局变量,但是如果需要修改这个全局变量,那么就要在函数前面 global ...
    VanJordan阅读 10,259评论 0 0
  • 1. 使用局部变量 deffunc(x): print'x is', x x =2 print'Changed l...
    Lemon雷阅读 3,576评论 0 1
  • 首先,在函数内部使用全局变量本来就是坏的编程习惯。其次,试图在函数内部改变全局变量的值也不可能。此时函数内部会再创...
    klory阅读 4,294评论 0 1
  • 模块和包 一 模块 1 什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是...
    go以恒阅读 6,725评论 0 4
  • 一、列表推导式 所谓的列表推导式,就是指的轻量级循环创建列表 1-1、简单方式 1-2、循环的过程中使用if 1-...
    Cehae阅读 2,875评论 0 1