在 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 类,它可以用于不同类型的数据,而不需要为每个类型编写单独的类。这提高了代码的可重用性和灵活性。