from typing import Protocol class Animal(Protocol): def walk(self) -> None: ... def speak(self) -> None: ... class Dog: def walk(self): print("This is a dog walking") def speak(self): print("Woof!") def make_animal_speak(animal: Animal): animal.speak() def main(): dog = Dog() make_animal_speak(dog) if __name__ == '__main__': main()