РЕДАКТИРОВАТЬ: Спасибо за информацию об атрибутах класса.Я понимаю, что они похожи на статические в других языках ОО.Теперь в следующем коде я хочу использовать __init__
базовых классов для установки x
и y
в производном классе.Любое руководство будет оценено.
class Base1:
def __init__(self, x):
self.x = x
class Base2:
def __init__(self, y):
self.y = y
class Derv (Base1, Base2):
def __init__(self, x, y):
self.x = x
self.y = y
OLD:
Относится к Множественное наследование: производный класс получает атрибуты только из одного базового класса?
Теперь, что происходит в следующем примере (словарь d пуст):
class Base1:
x = 10
class Base2:
y = 10
class Derv (Base1, Base2):
pass
d=Derv()
print (d.__dict__)
Хотя это работает, когда мы изменяем код на следующее:
class Base1:
x = 0
def __init__(self, x):
self.x = x
class Base2:
y = 0
def __init__(self, y):
self.y = y
class Derv (Base1, Base2):
def __init__(self, x, y):
self.x = x
self.y = y
Я думаю, что этобольше из-за определения x and y
в методе __init__
для Derv
.Но если я хочу установить значения с помощью конструкторов базового класса, каков правильный путь?