Python - 数据类型

- 泛型

泛型一种机制, 在 情况下,它允许人们定义函数、类或者方法, 这些函数、类或方法能够在多种各异的数据类型上进行操作, 并且在操作过程中能够始终维系类型安全, 泛型的实现促使编写具备可重用特性的代码成为事实, 而这些可重用代码能够被应用于不同的数据类型, 它确保了代码具备灵活性以及类型正确性。

一般而言, 于编程期间, 无需对变量类型予以声明。其类型是基于赋给它的值而被动态确定的。解释器并不执行类型检查, 所以有可能会引发运行时异常。

于3.5版本里, 引入了带有类型提示的泛型, 它能让你去指定变量的预期类型, 还能指定函数参数的预期类型, 以及返回值的预期类型, 此功能对减少运行时错误有帮助, 并且能提高代码可读性。

泛型借助引入类型变量, 对类型提示的概念予以了扩展, 类型变量所代表的是泛型类型, 在运用泛型函数或者类之际, 能够把它替换成特定类型。

定义泛型函数

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

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

在这里, 我们定义了一个泛型函数, 它被称作“” , 这个函数会接受一个列表, 也就是 'List' 作为参数, 之后会返回相同类型的列表, 其中类型变量“T”代表泛型类型, 在使用这个函数的时候, 它会被替换为特定类型。

使用不同数据类型调用泛型函数

Python泛型_Python泛型类型提示_泛型函数定义

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

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']

定义泛型类

声明泛型类型, 通常是借助于在类名之后添加类型参数列表来达成。下面给出的示例, 是于泛型类当中运用泛型:

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值