美文网首页
2022-06-23 Python 全局变量管理模块

2022-06-23 Python 全局变量管理模块

作者: Super7 | 来源:发表于2022-06-23 10:10 被阅读0次

    Python 多文件间传递全局变量参数

    起因

    在工程中遇到需要退出子线程

    t = threading.Thread(target=xx, name='xx')
    t.start()
    

    于是在线程中加入标志位来判定是否继续运行,由于单个全局变量仅能作用于单个文件,即使被import之后也无法实现双向读写,于是从网上看来思路,引入独立变量文件来管理增删改查

    P1

    global_var.py

    # -*- coding: utf-8 -*-
    
    def _init():  # 初始化
        global _global_dict
        _global_dict = {}
    
    
    def set_value(key, value):
        # 定义一个全局变量
        _global_dict[key] = value
    
    
    def get_value(key, def_value=None):
        # 获得一个全局变量,不存在则提示读取对应变量失败
        try:
            return _global_dict[key]
        except KeyError:
            return def_value
    
    t3.py
    import global_var
    import time
    
    def t3():
        global_var._init()
        while True:
            global_var.set_value('ttt5', time.time())
    
    t4.py
    mport global_var
    import t3
    import threading
    
    t = threading.Thread(target=t3.t3)
    t.daemon = True
    t.start()
    while True:
        print('t4 start')
        print(global_var.get_value('ttt5'))
        input('t4 wait')
    
    

    P2

    之前的用到项目中会读不到数据,不知为啥,换成了直接写类了

    
    class GlobalVar:
        global_dict = {}
    
    
    def set_value(key, value):
        # 定义一个全局变量
        GlobalVar.global_dict[key] = value
    
    
    def get_value(key, def_value=None):
        # 获得一个全局变量,不存在则提示读取对应变量失败
        try:
            return GlobalVar.global_dict[key]
        except KeyError:
            return def_value
    
    
    def show_all_value():
        # 都吐出来看看
        return GlobalVar.global_dict
    

    相关文章

      网友评论

          本文标题:2022-06-23 Python 全局变量管理模块

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