@clifford Для переопределения конструктора класса у дочернего класса, нам достаточно воспользоваться функцией super().__init__() и определить свои входные данные для дочернего класса.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
class X: def __init__(self, point : int, count : int): self.point = point self.count = count class Y(X): def __init__(self, point : int, plane : int, count : int): # Переопределяем конструктор класса super().__init__(point, count) # Инициализируем переменные с родительского класса self.plane = plane if __name__ == '__main__': y = Y(point = 5, plane = 1, count = 2) # Объявляем экземпляр класса print(y.point) print(y.plane) print(y.count) # Вывод : # 5 # 1 # 2 |
@clifford
В Python конструктор класса имеет имя __init__
. Для переопределения конструктора класса необходимо создать новый метод с именем __init__
внутри определения класса.
Например, допустим, у вас есть класс Person
с конструктором, который принимает имя и возраст человека:
1 2 3 4 |
class Person: def __init__(self, name, age): self.name = name self.age = age |
Если вы хотите переопределить конструктор, чтобы он, кроме имени и возраста, принимал еще и город проживания, вы можете создать новый метод __init__
в классе Person
, который будет принимать три аргумента:
1 2 3 4 5 |
class Person: def __init__(self, name, age, city): self.name = name self.age = age self.city = city |
Теперь при создании экземпляра класса Person
нужно передавать три аргумента вместо двух:
1
|
person = Person("Alice", 25, "New York") |
После выполнения этого кода переменная person
будет содержать объект класса Person
с именем "Alice"
, возрастом 25
и городом проживания "New York"
.