目的:
日常程序之间分为各个py模块,一些程序可以直接调用后return相关信息,一些程序则不能,这样的情况下,需要建立一个信息传值的方法,能运用在各py模块之间。
(比如不同Pyqt5之间的UI界面信息传递,备注:也可以用QT线程中的信号机制pyqtSignal完成信息传值,该方法后续记录。)
1、首先,是创建一个消息基类,用于保存数据名称及获取数据名称对应值数值。
(1)文件名为:globalvar.py
'''创建消息基类,保存属性及获取属性值的方法'''
class GlobalVar:
def __init__():
global _global_dict
_global_dict = {}
def set_mq_client(name,value): #设置保存的数据
_global_dict[name] = value
def get_mq_client(name): #提取保存的数据
try:
return _global_dict[name]
except KeyError:
return False
如上面的代码块意思:其实就是创建一个类,在初始化方法中,申明一个全局变量: _global_dict,_global_dict是一个字典。
建立两个函数,也都是运用字典的功能,进而来设置保存的数据和提取保存的数据。(字典功能数据的设置及提取,应该看得懂)
2、下一步:则是额外创建一个功能调用的模块:(此模块也可不创建,主要看个人。)
(2)文件名为:set_and_get.py,表示设置和提取数据。
from globalvar import GlobalVar
'''此处可以添加其他的方法'''
def set(name,value):
GlobalVar.set_mq_client(name,value)
def get(name):
print("获取数据:"+ str(GlobalVar.get_mq_client(name)))
3、创建一个设置数据名称的模块,然后我们在主程序中读取该数据名称对应的数值:
(3)文件名:set.py
import set_and_get
def sets():
set_and_get.set("run","正在跑")
set_and_get.set("ret","很好")
4、在主程序中读取另一个模块的设置的数值:
(4)文件名:main.py
import set_and_get
from globalvar import *
import set
#作用在当前模块中初始化GlobalVar模块中的变量,这样才能使 _global_dict = {}在当前模块中正常设置及提取对应数值
GlobalVar.__init__() #初始化属性
#另一个模块中设置数据名称对用的数值。
set.sets()
set_and_get.get("ret")
set_and_get.get("run")
#输出如下:
#获取数据:很好
#获取数据:正在跑