File size: 1,392 Bytes
99a41ea |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
class Animal:
def __init__(self, name: str, age: int):
self.name = name
self.age = age
def speak(self) -> str:
pass
def get_info(self) -> str:
return f"{self.name} is {self.age} years old"
class Dog(Animal):
def __init__(self, name: str, age: int, breed: str):
super().__init__(name, age)
self.breed = breed
def speak(self) -> str:
return f"{self.name} says Woof!"
def fetch(self) -> str:
return f"{self.name} is fetching the ball"
class Cat(Animal):
def __init__(self, name: str, age: int, indoor: bool = True):
super().__init__(name, age)
self.indoor = indoor
def speak(self) -> str:
return f"{self.name} says Meow!"
def climb(self) -> str:
return f"{self.name} is climbing"
class PetOwner:
def __init__(self, name: str):
self.name = name
self.pets = []
def add_pet(self, pet: Animal):
self.pets.append(pet)
def call_all_pets(self) -> list:
# return [pet.speak() for pet in self.pets]
result = []
for pet in self.pets:
result.append(pet.speak())
return result
def create_pet_family():
owner = PetOwner("Alice")
dog = Dog("Buddy", 3, "Golden Retriever")
cat = Cat("Whiskers", 2, True)
owner.add_pet(dog)
owner.add_pet(cat)
return owner
|