让Python对象的单个实例侦听未来参数的顺序

让Python对象的单个实例侦听未来参数的顺序,python,stream,instance,Python,Stream,Instance,假设我有一个开销很大的python类 class some_class: def __init__(self): self.overhead = large_overhead # Get new data def read_new_data(self, data): self.new_data = data def do_something(self): # DO SOMETHING. 假设我想让它监听另一个程

假设我有一个开销很大的python类

class some_class:
    def __init__(self):
        self.overhead = large_overhead

    # Get new data
    def read_new_data(self, data):
        self.new_data = data

    def do_something(self):
        # DO SOMETHING.

假设我想让它监听另一个程序或多个程序的输出,我有办法保持这个稳定的输入流。在给定开销的情况下,如何不每次启动一个新实例?我是否创建一个新脚本并打包类以维护它的“活动”?如果是这样,如果程序不能与我正在运行的脚本直接通信,而不经过中间存储(如SQL或文件),我如何捕获程序的输出?

您可以使用类变量:

class some_class:
    overhead = large_overhead

    # Get new data
    def read_new_data(self, data):
        self.new_data = data

    def do_something(self):
        # DO SOMETHING.
现在,在定义类时,开销只计算一次,您可以在任何类实例中使用
self.header

缺少细节。。。用于设置侦听器/观察器,并将对象的方法注册为数据传入时的回调—在事件循环中运行整个过程



虽然这很容易说,也很抽象,但我确信我将有一个相当陡峭的学习曲线来实现它,特别是考虑到我想实现一些测试基础设施。但这似乎很简单。

其他Python程序?@wwii不一定。它可以是位流或文本输出。我试图理解的是一个解决一般问题的好方法——要么维护一个开销很大的类,要么以某种方式分配这个开销,以避免浪费CPU资源。
…不要每次都启动一个新实例
,你说的每次都是什么意思???@wwii这意味着当数据进入要处理的时候,我不想启动处理类作为一个新实例-而是让它像apache对端口那样“等待”。在这种情况下,如果脚本结束并且类从内存中清除,那么调用该类时是否需要再次加载开销?我知道如果多个实例同时运行,它们将共享相同的开销。谢谢!这是我在目前所学领域之外所寻找的。@RockyLi-在[pyvideo.org](pyvideo.org)上有很多有价值的视频