泛型类Generic注解

在 Python 的 typing 模块中,Generic 是一个泛型类,用于创建参数化的类和函数,以便支持不同类型的参数。它允许你定义具有类型参数的类,这些类型参数在实例化时才确定。这样,你可以在不同的上下文中使用相同的类,但可以使用不同的类型参数。

使用 Generic 可以增强代码的可重用性和灵活性,使得你可以编写更通用的类和函数,而不需要为每个具体的类型重复编写代码。

from typing import TypeVar, Generic

T = TypeVar('T')  # 定义类型变量 T

class Box(Generic[T]):
    def __init__(self, content: T, items: Iterable[T]):
        self.content = content
        self.items = list[T](items)

# 创建一个装有整数的盒子
int_box = Box(42, range(5))
print(int_box.content)  # 输出: 42
print(int_box.items )  # [0,1,2,3,4]
# 创建一个装有字符串的盒子
str_box = Box("Hello, World!", "abcde")
print(str_box.content)  # 输出: Hello, World!
print(str_box.items) # ['a', 'b', 'c', 'd', 'e']

在这个示例中,我们使用 Generic[T] 创建了一个参数化的 Box 类。
T 是一个类型变量,它表示我们在实例化时可以传递的不同类型。我们可以创建装有不同类型的盒子,并在每个盒子实例中访问其内容。

通过使用 Generic,我们可以编写一个通用的 Box 类,它可以用于不同类型的数据,而不需要为每个类型编写单独的类。这提高了代码的可重用性和灵活性。

posted @ 2023-08-29 14:56  我在路上回头看  阅读(237)  评论(0编辑  收藏  举报