From ad5b89bb4f767531c9792529de853e7f854d89a6 Mon Sep 17 00:00:00 2001 From: Vitalii Safian Date: Mon, 10 Jul 2023 23:17:55 +0300 Subject: [PATCH 1/4] created animals classes --- app/main.py | 49 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 48 insertions(+), 1 deletion(-) diff --git a/app/main.py b/app/main.py index 8fbf3053..16cb3899 100644 --- a/app/main.py +++ b/app/main.py @@ -1 +1,48 @@ -# write your code here +class Animal: + def __init__(self, name: str, + appetite: int, + is_hungry: bool = True + ) -> None: + self.name = name + self.appetite = appetite + self.is_hungry = is_hungry + + def print_name(self) -> None: + print(f"Hello, I'm {self.name}") + + def feed(self) -> int: + if self.appetite and self.is_hungry: + print(f"Eating {self.appetite} food points...") + self.is_hungry = False + points = self.appetite + self.appetite = 0 + return points + return 0 + + +class Cat(Animal): + def __init__(self, name, is_hungry: bool = True, + appetite: int = 3) -> None: + super().__init__(name=name, + is_hungry=is_hungry, + appetite=appetite) + + @staticmethod + def catch_mouse() -> None: + print("The hunt began!") + + +class Dog(Animal): + def __init__(self, name, is_hungry: bool = True, + appetite: int = 7) -> None: + super().__init__(name=name, + is_hungry=is_hungry, + appetite=appetite) + + @staticmethod + def bring_slippers() -> None: + print("The slippers delivered!") + + +def feed_animals(animals: list[Animal]) -> int: + return sum(animal.feed() for animal in animals) From a1627fd04f58f1f46d58199fe8abfdfae6cc6394 Mon Sep 17 00:00:00 2001 From: Vitalii Safian Date: Mon, 10 Jul 2023 23:20:18 +0300 Subject: [PATCH 2/4] fixed annotations --- app/main.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/main.py b/app/main.py index 16cb3899..ea4470a7 100644 --- a/app/main.py +++ b/app/main.py @@ -21,7 +21,7 @@ def feed(self) -> int: class Cat(Animal): - def __init__(self, name, is_hungry: bool = True, + def __init__(self, name: str, is_hungry: bool = True, appetite: int = 3) -> None: super().__init__(name=name, is_hungry=is_hungry, @@ -33,7 +33,7 @@ def catch_mouse() -> None: class Dog(Animal): - def __init__(self, name, is_hungry: bool = True, + def __init__(self, name: str, is_hungry: bool = True, appetite: int = 7) -> None: super().__init__(name=name, is_hungry=is_hungry, From 5fc203114dbd380cbe65764b0e5a4d0c710b03eb Mon Sep 17 00:00:00 2001 From: Vitalii Safian Date: Tue, 11 Jul 2023 12:36:54 +0300 Subject: [PATCH 3/4] added annotation changes and fixed logic --- app/main.py | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/app/main.py b/app/main.py index ea4470a7..75b56e45 100644 --- a/app/main.py +++ b/app/main.py @@ -11,18 +11,18 @@ def print_name(self) -> None: print(f"Hello, I'm {self.name}") def feed(self) -> int: - if self.appetite and self.is_hungry: + if self.is_hungry: print(f"Eating {self.appetite} food points...") self.is_hungry = False - points = self.appetite - self.appetite = 0 - return points + return self.appetite return 0 class Cat(Animal): - def __init__(self, name: str, is_hungry: bool = True, - appetite: int = 3) -> None: + def __init__(self, name: str, + appetite: int = 3, + is_hungry: bool = True + ) -> None: super().__init__(name=name, is_hungry=is_hungry, appetite=appetite) @@ -33,8 +33,10 @@ def catch_mouse() -> None: class Dog(Animal): - def __init__(self, name: str, is_hungry: bool = True, - appetite: int = 7) -> None: + def __init__(self, name: str, + appetite: int = 7, + is_hungry: bool = True + ) -> None: super().__init__(name=name, is_hungry=is_hungry, appetite=appetite) From 08f39f5e93448ff2d158d28eed921015059ca072 Mon Sep 17 00:00:00 2001 From: Vitalii Safian Date: Tue, 11 Jul 2023 14:16:36 +0300 Subject: [PATCH 4/4] fixed cat and dog init --- app/main.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/app/main.py b/app/main.py index 75b56e45..284124c6 100644 --- a/app/main.py +++ b/app/main.py @@ -20,12 +20,11 @@ def feed(self) -> int: class Cat(Animal): def __init__(self, name: str, - appetite: int = 3, is_hungry: bool = True ) -> None: super().__init__(name=name, is_hungry=is_hungry, - appetite=appetite) + appetite=3) @staticmethod def catch_mouse() -> None: @@ -34,12 +33,11 @@ def catch_mouse() -> None: class Dog(Animal): def __init__(self, name: str, - appetite: int = 7, is_hungry: bool = True ) -> None: super().__init__(name=name, is_hungry=is_hungry, - appetite=appetite) + appetite=7) @staticmethod def bring_slippers() -> None: