以下是我的代码:
from collecionts.abc import Sequence
from typing import TypeVar
T = TypeVar('T')
def first(a: Sequence[T]) -> T:
return a[0]
在我的理解中,我可以将任何类似序列的对象作为参数传递给
first
函数,例如:first([1,2,3])
并且它返回了1
然而,它引发了一个TypeError: 'ABCMeta'对象无法进行下标操作。这里出了什么问题?我该如何使其工作,使我有一个使用typing
模块的函数,可以获取任何类型的第一个元素?
更新
如果我使用from typing import Sequence
,它就可以正常运行,from collections.abc import Sequence
和from typing import Sequence
之间有什么区别?