泛型

前面提到可以使用TypeVar()来定义类型变量,而在泛型中,类型参数就是一种类型变量,所以使用TypeVar()定义的变量可以作为泛型的类型参数来使用。TypeVar()接受至少一个参数,其第一个参数用于声明类型变量的名称,之后的参数用于限定类型变量可以代表的类型。

类型变量是存在作用域的,例如如果使用了类型变量的两个方法都在同一个class中,那么类型变量的值是统一的、不能改变的。这与其他面向对象语言中的泛型特性相同。