将方法从Python类导入另一个类实例
假设我有一个python对象将方法从Python类导入另一个类实例,python,class,inheritance,Python,Class,Inheritance,假设我有一个python对象A,它是类A的一个实例。类A的每个实例都有一个属性子类型 我还有SubType_B、SubType_C和SubType_D,每个类都有一个名为Inget()的方法。ingest()方法以前使用(self)获取它所需的所有参数,但是self现在是类A的实例 从子类型类(例如子类型_a)继承/使用方法ingest(),使用对象a的self,最优雅的方法是什么 以前,在类A中定义了inset()方法,但我想将其分解为不同的类。类A被实例化,并且基于子类型参数,该对象将从相应
A
,它是类A
的一个实例。类A
的每个实例都有一个属性子类型
我还有SubType_B
、SubType_C
和SubType_D
,每个类都有一个名为Inget()的方法。ingest()
方法以前使用(self)
获取它所需的所有参数,但是self
现在是类A
的实例
从子类型
类(例如子类型_a
)继承/使用方法ingest()
,使用对象a
的self
,最优雅的方法是什么
以前,在类A
中定义了inset()
方法,但我想将其分解为不同的类。类A
被实例化,并且基于子类型
参数,该对象将从相应的子类型
类继承正确的摄取()
方法
简单地说,我希望一个对象从另一个对象获取一个方法,就好像它是自己的一样。更新
最终的解决方案是生成一个工厂函数,返回子类型
类的实例。此工厂读取传递给它的参数中的信息,这些参数确定要实例化的子类型。子类型
类都扩展了A类
我曾经向后设想过,认为我从最一般的类开始,然后合并了子类中的属性和方法。这个类似工厂的函数进行必要的信息收集,然后实例化适当的子类
感谢@HenryGomersall和@IgnacioVazquez Abrams的想法和澄清。保持良好的关系-创建一个新的控制类,根据需要将a
的实例传递给子类型的实例
,并从a
中删除子类型
属性。也就是说,新类将有一个A
实例和一个子类型
实例,这是它应该处理的。@HenryGomersall,一个控制类是一个好主意,谢谢,我们将对此进行研究。@IgnacioVazquez Abrams,你是对的,不是。这个问题也许定义得太松散了,不是说我的最终目标,而是说如何完成一些构思不周的事情。正如在其他评论中所建议的,控制类的想法,尽管不连贯,但直觉上理解了我的意图。感谢XY问题链接,记住这一点很好。为什么不创建一个元类,它将返回一个基于子类类型的具有正确摄取方法的类呢?这个元类可以直接访问您的任何子类库,并且可以在它的新方法中做出决定。