Python跨文件全局变量的实现

参考:Python跨文件全局变量的使用

#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):
    #获得一个全局变量,不存在则提示读取对应变量失败
    try:
        return _global_dict[key]
    except:
        print('读取'+key+'失败\r\n')

#先必须在主模块初始化(只在Main模块需要一次即可)

# main.py
 
 
import threading
import thread1
import global_var  #import
 
 
def clickButton(self):
    sender = self.sender()
    print(sender.text() + '按钮被点击')
    global_var.set_value('det_flag', "True")   #处理
    btn_flag = global_var.get_value('det_flag')  #处理
   
 
if __name__ == '__main__':
    global_var._init()   #先必须在主模块初始化(只在Main模块需要一次即可)
    global_var.set_value('det_flag', "False")  #定义
     #todo
####thread.py
 
 
import threading
import os
import time
import sys
 
import global_var
 
 
 
def work_thread():
    while True:
        #不需要再初始化了
        btn_flag = global_var.get_value('det_flag')    #读取触发信号
        time.sleep(1)
 
        if btn_flag=="True":  
            global_var.set_value('det_flag', "False")    #重置触发信号
            # mutex.acquire()
            n+=1
            time.sleep(0.2)
            print("thread 1-2*****")
            # mutex.release()

如果是多线程,可能会出现一个线程写入这个变量,另一个线程又在读取,从可靠性的角度考虑,多线程时读写最好加个锁同步一下

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值