【发布时间】:2021-03-25 03:33:54
【问题描述】:
所以我不知道我所要求的是否可以通过,但无论如何,我想做的是以下
class A:
def methodA(self):
pass
def methodB(self):
pass
class B:
pass
b = B()
b.methodA()
b.methodB()
但问题是我可能会有这么多 B 类对象,这就是为什么我想将“A”方法分配给 B 类而不是 B 类的单个对象,我找到了一个解决方案但它的问题是我必须将对象作为参数传递,所以例如我会有这样的东西
b.methodA(b)
b.methodB(b)
已编辑 所以我想做这样的事情的原因是,我正在制作一个程序,它将有两个 python 解释器,它们解释同一个 python 文件,我想通过只发送/接收对象内部的数据以及对象类型,因此另一个解释器将只接收对象数据及其类型,并从 B 类等类中创建新对象,并且由于两个解释器都在解释同一个 python 文件,所以它们都可以访问对象类,所以我真的不必发送对象方法,我可以简单地让其他解释器复制它(如果它可以通过的话)
已编辑 所以我需要在运行时分配方法并删除它们,在代码执行完成之前,我将无法知道 B 类将从哪些类中复制方法
【问题讨论】:
-
为什么
B不继承A的那些方法? -
对于我的应用程序,它必须动态发生,B 类将添加和删除新方法:)
-
@void 从您最近的编辑中可以看出,您可能会询问对象序列化。如果您可以控制类的定义,则可以通过making them pickleable 解决您的问题。
-
它们实际上可以腌制,但腌制的问题很慢,我想我可以为我的程序优化序列化过程????
-
@void 听起来像是过早的优化。如果您不进行实际测试,声称“x 非常慢”是没有意义的,因为所有其他序列化方法可能会更慢。
标签: python class monkeypatching