泛型类Generic注解

发布时间 2023-08-29 15:01:39作者: 我在路上回头看

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

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

from typing import TypeVar, Generic, List

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

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

# 创建一个装有整数的盒子
int_box = Box(42)
print(int_box.content)  # 输出: 42

# 创建一个装有字符串的盒子
str_box = Box("Hello, World!")
print(str_box.content)  # 输出: Hello, World!

# 创建一个装有列表的盒子
list_box = Box([1, 2, 3])
print(list_box.content)  # 输出: [1, 2, 3]

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

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