Python 如何从多处理管道继承?

Python 如何从多处理管道继承?,python,class,inheritance,multiprocessing,python-multiprocessing,Python,Class,Inheritance,Multiprocessing,Python Multiprocessing,我想围绕Python的multiprocessing.Pipe对象构建一个包装器类。从多处理模块继承已知有其挑战性(有关讨论多处理.Queue继承的类似问题,请参阅),我面临无法解决的错误 让我们考虑一个简单的例子: 来自多处理导入管道的 MyClass1:通过 类别MyClass2(管道,MyClass1): 通过 在这里,我们创建一个类MyClass2,该类继承自管道类和自定义类MyClass1。运行上述命令将提高 TypeError: metaclass conflict: the me

我想围绕Python的
multiprocessing.Pipe
对象构建一个包装器类。从
多处理
模块继承已知有其挑战性(有关讨论
多处理.Queue
继承的类似问题,请参阅),我面临无法解决的错误

让我们考虑一个简单的例子:

来自多处理导入管道的

MyClass1:通过
类别MyClass2(管道,MyClass1):
通过
在这里,我们创建一个类
MyClass2
,该类继承自管道类和自定义类
MyClass1
。运行上述命令将提高

TypeError: metaclass conflict: the metaclass of a derived class
 must be a (non-strict) subclass of the metaclasses of all its bases
我知道,要解决这个错误,我可能必须引入一个元类,
MyClass2
可以从中继承,但是当我尝试使用
type(Pipe)
确定
Pipe
对象的元类时,我得到的
根本没有帮助


我上面链接的堆栈溢出问题提到,本质上有一种特殊的方法来继承
队列
。对于
管道
,是否也有特殊的方法?有没有关于如何避免此错误的建议?

来自python文档

函数的作用是:返回一对由管道连接的连接对象,默认情况下,管道是双向的


Pipe
是一个方法,因此不能从中继承。

没有
Pipe
类。它适用于
多处理.Queue
,因为有一个
多处理.queues.Queue
类,但是
多处理.Pipe
多处理.connection.py
中的另一个
Pipe
函数支持

您正在尝试从总是返回两个连接对象的函数继承。您需要对
Pipe
可以返回的各种连接对象进行子类化。这将是什么连接对象取决于操作系统,取决于连接是否应为双工/单工。不过,我怀疑这是个好主意。(看看
multiprocessing.connection.py
,从这个想法中得到解决;)


我建议您创建自己的
MyPipe
函数,让它在内部调用
multiprocessing.Pipe
,并让它根据需要附加到返回的连接对象。

如链接问题中所述,
mp.Queue
是一种方法,但存在可继承的
mp.queues.Queue
。我想知道
mp.Pipe
是否存在类似的类。您应该检查我链接的那些文档。队列实际上是一个类。这不是一种方法。