Python TypeError:'Generic'对象不可订阅 - 如何声明和实例化通用基类

时间:2016-06-09 22:10:14

标签: python generics base-class typing

我正在尝试使用python 3中的新类型注释功能和对泛型的支持在python中创建一个抽象通用基类。

我有一个基类和一个定义如下的派生类:

osc

当我尝试实例化一个类型为EmploymentHistoryFileReader [EmploymentHistoryFileRow]的对象时,我得到:

real

我尝试了很多不同的东西,例如在声明子类时或在实例化子类时指定泛型参数的值,并且它们都会产生相同的错误消息。核心库有许多通用类型正常工作的例子,所以我很困惑为什么我会得到这些错误。

1 个答案:

答案 0 :(得分:2)

这一行:

class FileReader(Generic(_T)):

应使用Generic[_T]的括号:

class FileReader(Generic[_T]):

Generic是通用的,与任何其他通用ABC一样,您可以在括号中指定其类型参数。