我有5个类,它们都是父类的子类。我想通过向每个类添加一个相同的方法来为每个类定义新的子类。有没有一种方法可以动态地做到这一点?这在OOP术语中有名字吗
在下面new_method
是完全相同的所有情况下,所以我宁愿重复我自己
class A(MySuperClass)
class B(MySuperClass)
class C(MySuperClass)
class D(MySuperClass)
class AAA(A):
def new_method():
...
class BBB(B):
def new_method():
...
class CCC(C):
def new_method():
...
class DDD(D):
def new_method():
...
除了多重继承之外,如果对代码更方便的话,还可以使用decorator:
但是,如果您不一定需要一个新的
AAA
子类,而只是想从超类中向new_method
添加A, B, C, D
,那么就很简单了:甚至更好。如果
MySuperClass
可以更改,您只需执行以下操作:可以使用
type
动态创建类:您可以通过创建包含
new_method
的新类来解决重复问题,如下所示:这称为多重继承。在这里,您可以将继承视为专门化机制和代码共享
相关问题 更多 >
编程相关推荐