Python 包含ABCMeta实例的列表的函数注释

Python 包含ABCMeta实例的列表的函数注释,python,annotations,abstract-class,Python,Annotations,Abstract Class,我试图使用Python函数注释PEP 3107作为PyCharm的类型提示,但失败了。问题可能与我使用ABCMeta有关: 此代码不运行。相反,我得到了一个TypeError:“ABCMeta”对象在def append_to_列表行上不可编辑 当我对上面代码中的注释行使用docstring类型提示的替代函数时,一切都很好 有可能使用注释来暗示这种类型吗?这与abc无关,但因为您让Python逐字计算 list(base) 这是不可能的,因为基础是不可替代的。这就是错误消息告诉您的 您需要将其

我试图使用Python函数注释PEP 3107作为PyCharm的类型提示,但失败了。问题可能与我使用ABCMeta有关:

此代码不运行。相反,我得到了一个TypeError:“ABCMeta”对象在def append_to_列表行上不可编辑

当我对上面代码中的注释行使用docstring类型提示的替代函数时,一切都很好

有可能使用注释来暗示这种类型吗?

这与abc无关,但因为您让Python逐字计算

list(base)
这是不可能的,因为基础是不可替代的。这就是错误消息告诉您的

您需要将其更改为方括号并用引号括起来,因为列表类型不可下标:

def append_to_list(el: base) -> 'list[base]':
from typing import List

def append_to_list(el: base) -> List[base]:
或使用可下标的键入。列表:

def append_to_list(el: base) -> 'list[base]':
from typing import List

def append_to_list(el: base) -> List[base]:
指示它是包含基本对象的列表