/
ilya.petrash
/
SimplePyScripts
Обзор
Документация
Войти
/
ilya.petrash
/
SimplePyScripts
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
design_patterns__examples/Factory/example_2.py
43 строки
844 B
gil9red
Refactoring. Using black code style
02 май 2023, 14:36
02 май 2023, 14:36
3103f53
Код
Авторство
О чём код?
#!/usr/bin/env python3 # -*- coding: utf-8 -*- __author__ = "ipetrash" # SOURCE: https://ru.wikipedia.org/wiki/Фабричный_метод_(шаблон_проектирования) from abc import ABC, abstractmethod class Animal(ABC): @staticmethod def initial(animal: str) -> "Animal": if animal == "Lion": return Lion() elif animal == "Cat": return Cat() raise Exception(f'Unsupported animal "{animal}"') @abstractmethod def voice(self): pass class Lion(Animal): def voice(self): print("Rrrrrrrr i'm the lion") class Cat(Animal): def voice(self): print("Meow, meow i'm the kitty") if __name__ == "__main__": animal_1 = Animal.initial("Lion") animal_2 = Animal.initial("Cat") animal_1.voice() animal_2.voice()