泛型类型允许我们定义可以处理不同数据类型的类、函数或方法,而无须事先指定确切的数据类型。当我们想要创建一个可以处理多种数据类型的单个实现时,这很有用。
要在Python中定义泛型类型,我们可以使用内置的模块typing,它为Python 3.5及更新版本提供了一组类型提示。typing模块定义了许多泛型类型,如List、Tuple、Dict和Union,这些类型可用于定义泛型函数、方法和类。
在生活中,一般把同一个容器存放同一类东西,例如,棉签盒专门用来放棉签,糖果盒专门用来放糖果。可以使用泛型来检查集合中存储的数据类型,例如,List<str>指定放字符串。
在这个基本示例中,我们将定义一个可以处理不同类型列表的泛型函数:
定义一个可以使用不同类型值的泛型类:
创建一个通用的数据存储库类,该类可以处理不同的数据类型。
DataRepository类使用泛型类型T来定义存储库可以存储的数据类型。泛型类型T确保添加到存储库的数据是正确的类型,泛型返回类型List[T]确保从存储库检索的数据也是正确的类型。