为了账号安全,请及时绑定邮箱和手机立即绑定

Python - 如何从打印信息的单独进程实时读取类实例

Python - 如何从打印信息的单独进程实时读取类实例

翻阅古今 2021-09-01 19:13:36
我有一段代码不断创建类 Car 的新实例。这样做时,类 Car 正在创建它自己的实例列表,因此当我想获取当前实例的信息时,我可以轻松地这样做,如下面的代码所示:from multiprocessing import Processimport timeclass Car:    car_list = list()    def __init__(self, id, model):        self.id = id        self.model = model        Car.car_list.append(self)    @classmethod    def get_current_instances(cls):        return Car.car_listclass Interface:    def print_current_system(self):        while True:            print(len(Car.get_current_instances()))            time.sleep(1)if __name__ == "__main__":    interface = Interface()    model = ["Toyota", "BMW"]    [Car(i, model[i]) for i in range(len(model))]    print_process = Process(target=interface.print_current_system)    print_process.start()    Car(2345, "Tesla")    print("from main process " + str(len(Car.get_current_instances()))) 出于问题的目的,此代码已简化。但是,问题仍然存在。我正在从新进程调用函数 print_current_system。此函数不断查看 Car 的所有当前实例并打印汽车数量。当我开始这个进程,然后,然后添加一些新的 Car 实例时,这些实例对另一个子进程是隐藏的,而对主进程是完全可见的。我很确定我需要使用队列或管道之类的东西。但是,我不确定如何。这是上面代码的输出:2from main process 322222
查看完整描述

2 回答

  • 2 回答
  • 0 关注
  • 147 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信