Consider the following animal hierarchy. class Animal: de…
Consider the following animal hierarchy. class Animal: def __init__(self, name: str, age: int) -> None: self._name = name self._age = age def speak(self) -> str: raise NotImplementedError(“bad”) class Dog(Animal): def speak(self) -> str: return “woof” def __repr__(self) -> str: return f”Dog(name={self._name}, age={self._age}, sound={self.speak()})” class Cat(Animal): def speak(self) -> str: return “meow” def __repr__(self) -> str: return f”Cat(name={self._name}, age={self._age}, sound={self.speak()})” def main() -> None: animals: list[Animal] = [ Dog(“Rex”, 5), Cat(“Milo”, 2) ] print(animals) main() What gets printed when the main is run?
Read Details