我正在尝试设计我的代码,它在单个 python 文件中具有多个类,其中类 A 是类的抽象类,并且类 B 是类和C()的D()父类。C()D()
正如您所看到的,在执行这些类中的任何功能之前,我使用super().__init__它来初始化 Abstract 类和 Parent 类。
代码如下:
from abc import ABC, abstractmethod
class A(ABC):
def __init__(self):
print('Running A.__init__')
@abstractmethod
def function(self):
pass
class B():
def __init__(self):
print('Running B.__init__')
class C(A,B):
def __init__(self):
print('Running C.__init__')
# C.__init__()
super(C, self).__init__()
super(A,self).__init__()
def function(self):
pass
class D(A,B):
def __init__(self):
print('Running D.__init__')
super(D,self).__init__()
super(A, self).__init__()
def function(self):
pass
foo = C()
bar = D()
输出:
Running C.__init__
Running A.__init__
Running B.__init__
Running D.__init__
Running A.__init__
Running B.__init__
有兴趣学习如何避免多次初始化,简单来说,我希望在执行C()或之前初始化抽象类 A 和父类 B D(),其中 C 和 D 将具有从 A 和 B 继承的所有功能
foo = C()
bar = D()
Running A.__init__
Running B.__init__
Running C.__init__
Running D.__init__
我最近尝试学习 OOPS 概念,如果需要重新设计代码,请帮助。谢谢