2
말은 여러 개의 매개 변수 인수 추상 클래스 Animal
가 있고, 나는 Animal
의 모든 속성과 서브 클래스 Dog
를 만들려하지만, race
의 추가 속성. 지금까지 내가이 일을하는 유일한 방법을 알고 :하위 클래스의 모든 수퍼 클래스 생성자 매개 변수를 다시 작성하지 않아도됩니까? 예를 들어
from abc import ABC
class Animal(ABC):
def __init__(self, name, id, weight):
self.name = name
self.id = id
self.weight = weight
class Dog(Animal):
def __init__(self, name, id, weight, race) # Only difference is race
self.race = race
super().__init__(name, id, weight)
는 생성자 'Dog
내에서 생성자 매개 변수'Animal
의 모든 중복 포함하지 않는이 일 수있는 방법이 있나요? 코드를 반복적으로 보이게 할뿐만 아니라 많은 매개 변수가있을 때 이것은 상당히 지루할 수 있습니다.
감사합니다. 나는 catch-all 매개 변수를 사용하면 선택 사항이되어 "race"만있는 Dog를 만들 수 있다고 생각했지만 supers __init__을 호출하면 예외가 발생합니다. (6 분 내에 수락합니다) –