在 Python 中使用 Type Hints

在 Python 中使用 Type Hints

  • Created: 2024-10-21T16:48+08:00
  • Published: 2024-10-22T13:08+08:00

Categories: Python

工厂方法使用 TypeVar 作为函数参数的类型注释,可以做到传入什么类型,返回什么类型。

from typing import Type, TypeVar


class Pet:
    def __init__(self):
        pass

    def set_name(self, name):
        self.name = name


class Dog(Pet):
    def __init__(self):
        super().__init__()

    def bark(self):
        echo("woof")


class Cat(Pet):
    def __init__(self):
        super().__init__()

    def meow(self):
        echo("meow")


PetClass = TypeVar("PetClass", bound=Pet)

def create_pet(pet_class: Type[PetClass]) -> PetClass:
    p = pet_class()
    p.set_name("foo")
    return pet_class()


if __name__ == "__main__":
    d = create_pet(Dog)
    d.bark()
    c = create_pet(Cat)
    c.meow()
posted @ 2024-10-22 13:09  dutrmp19  阅读(1)  评论(0编辑  收藏  举报