Почему это работает
class A():
def __init__(self):
self.B = self.__B__()
class __B__():
def __init__(self):
pass
def speak(self):
print("Hi, I'm B")
def speak(self):
print("Hi, I'm A")
И это работает:
class A():
def __init__(self):
super(A, self).__init__()
def speak(self):
print("Hi, I'm A")
Но это не так?
class A():
def __init__(self):
super(A,self).__init__()
self.B = self.__B__()
class __B__():
def __init__(self):
super(__B__,self).__init__()
def speak(self):
print("Hi, I'm B")
def speak(self):
print("Hi, I'm A")
И я получаю сообщение, что __B__
не существует. Кроме того, что делает super(ClassName,self).__init__()
и почему следует / не следует его использовать?