A B
| | | |
C D E F
| | | |
G H
|
I
user@ubuntu:~/Documents/Python/oop_python$ cat tt.py
class A:
def call_me(self):
print("A")
class C(A):
def call_me(self):
super().call_me()
print("C")
class D(A):
def call_me(self):
super().call_me()
print("D")
class B:
def call_me(self):
print("B")
class E(B):
def call_me(self):
super().call_me()
print("E")
class F(B):
def call_me(self):
super().call_me()
print("F")
class G(C, D, E):
def call_me(self):
super().call_me()
print("G")
class H(F):
def call_me(self):
super().call_me()
print("H")
class I(G, H):
def call_me(self):
super().call_me()
print("I")
user@ubuntu:~/Documents/Python/oop_python$ python3.2 -i tt.py
>>> i = I()
>>> i.call_me()
A
D
C
G
I
Вопрос> Почему B
, E
, F
не печатаются?
// updated based on comments from delnan
user@ubuntu:~/Documents/Python/oop_python$ cat tt.py
class BaseClass():
def call_me(self):
print("BaseClass")
pass
class A(BaseClass):
def call_me(self):
super().call_me()
print("A")
class C(A):
def call_me(self):
super().call_me()
print("C")
class D(A):
def call_me(self):
super().call_me()
print("D")
class B(BaseClass):
def call_me(self):
super().call_me()
print("B")
class E(B):
def call_me(self):
super().call_me()
print("E")
class F(B):
def call_me(self):
super().call_me()
print("F")
class G(C, D, E):
def call_me(self):
super().call_me()
print("G")
class H(F):
def call_me(self):
super().call_me()
print("H")
class I(G, H):
def call_me(self):
super().call_me()
print("I")
user@ubuntu:~/Documents/Python/oop_python$ python3.2 -i tt.py
>>> i = I()
>>> i.call_me()
BaseClass
B
F
H
E
A
D
C
G
I