1.7Kпросмотров
30.2%от подписчиков
13 ноября 2025 г.
📷 ФотоScore: 1.9K
Динамическая типизация с typing.Protocol в Python typing.Protocol из модуля typing позволяет задавать интерфейсы для классов без явного наследования, обеспечивая поддержку структурной типизации. Это особенно полезно для проверки совместимости объектов на основе их методов, а не явного наследования, что делает код более гибким. from typing import Protocol class Flyable(Protocol): def fly(self) -> None: pass # Классы, реализующие метод fly, автоматически считаются Flyable
class Bird: def fly(self) -> None: print("Bird is flying") class Drone: def fly(self) -> None: print("Drone is flying") # Функция, принимающая любой объект, соответствующий Flyable
def make_it_fly(obj: Flyable) -> None: obj.fly() # Тест
bird = Bird()
drone = Drone()
make_it_fly(bird) # Bird is flying
make_it_fly(drone) # Drone is flying 👍 - если было полезно @python_practics