Python 泛型

Python 泛型

在Python中,泛型是一种机制,可以定义可以在多种类型上操作的函数、类或方法,同时保持类型安全。通过实现泛型,可以编写可重用的代码,可以用于不同的数据类型。它确保提升代码的灵活性和类型的正确性。

在Python中,泛型是使用类型提示来实现的。这个特性是在Python3.5及以后的版本中引入的。

通常情况下,您不需要声明变量类型。类型是通过分配的值来动态确定的。Python的解释器不进行类型检查,因此可能会引发运行时异常。

Python的新类型提示特性有助于启示用户预期参数的类型。

类型提示允许您指定变量、函数参数和返回值的预期类型。泛型通过引入类型变量来扩展这种能力,类型变量表示泛型类型,在使用泛型函数或类时可以替换为具体类型。

示例1

让我们来看一个定义泛型函数的示例:

from typing import List, TypeVar, Generic
T = TypeVar('T')
def reverse(items: List[T]) -> List[T]:
   return items[::-1]

在这里,我们定义了一个名为’reverse’的通用函数。该函数以一个列表(’List[T]’)作为参数,并返回一个相同类型的列表。类型变量’T’代表通用类型,当使用函数时,将用具体类型替换。

示例2

使用不同的数据类型调用reverse()函数 –

numbers = [1, 2, 3, 4, 5]
reversed_numbers = reverse(numbers)
print(reversed_numbers)

fruits = ['apple', 'banana', 'cherry']
reversed_fruits = reverse(fruits)
print(reversed_fruits)

它将产生以下 输出

[5, 4, 3, 2, 1]
['cherry', 'banana', 'apple']

示例3

以下示例使用泛型类中的泛型 –

from typing import List, TypeVar, Generic
T = TypeVar('T')
class Box(Generic[T]):
   def __init__(self, item: T):
      self.item = item
   def get_item(self) -> T:
      return self.item
Let us create objects of the above generic class with int and str type
box1 = Box(42)
print(box1.get_item())

box2 = Box('Hello')
print(box2.get_item())

它将产生以下 输出 -

42
Hello

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程