将方法从一个类复制到另一个类(python)

将方法从一个类复制到另一个类(python),python,class,monkeypatching,Python,Class,Monkeypatching,所以我不知道我所要求的是不是还可以,但我想做的是 class A: def methodA(self): pass def methodB(self): pass class B: pass b = B() b.methodA() b.methodB() 但问题是,我可能会有这么多的B类对象这就是为什么我想将“A”的方法分配给B类而不是B类的单个对象,我找到了一个解决方案,但问题是我必须将对象作为参数传递,所以举个例子,我将有这样

所以我不知道我所要求的是不是还可以,但我想做的是

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
将具有
A
等功能。更多信息请访问: 例如:

母公司

class Person:
  def __init__(self, fname, lname):
    self.firstname = fname
    self.lastname = lname

  def printname(self):
    print(self.firstname, self.lastname)

#Use the Person class to create an object, and then execute the printname method:

x = Person("John", "Doe")
x.printname()
儿童班:

class Student(Person):
  pass
然后,您可以使用Student提供的Person函数:

x = Student("Mike", "Olsen")
x.printname()

阅读更多信息:

如果您要做的是让B在A中拥有函数,那么您可以将类A传递给类B

class A():
    def method1():
        return 'method1'
    def method2():
        return 'method2'
class B(A):
    pass

B.method1()
B.method2()

为什么
B
不从
A
继承这些方法?对于我的应用程序,它必须动态发生,B类将添加和删除新方法:)@void从您最近的编辑中显示,您可能询问有关对象序列化的问题。如果你能控制类的定义,你也许可以通过以下方法来解决你的问题:它们实际上是可以pickle的,但是pickle的问题非常缓慢,我想我可以为我的客户优化很多序列化过程program@void听起来像是过早的优化。如果你不做真实世界的测试,声称“x非常慢”是毫无意义的,因为所有其他序列化方法可能更慢。更具体地说,你可以将它添加为
超级
。您可以定义方法
methodA
methodB
,并在Ai类中定义的这些新方法中添加
super.methodA
super.methodB
,只需编辑我的问题,谢谢,但我认为这不会解决我的问题我只需编辑我的问题,谢谢你的回复,但我认为这不会解决我的问题