我有一个函数可以接受任何可以索引的变量作为输入,例如列表或元组。如何在函数的类型提示中指出这一点?
您的方法接受 序列,因此请使用
typing.Sequence
。这是一个通用的,因此您可以指定序列必须包含的对象类型:
from typing import Sequence
def foo(bar: Sequence[int]):
# bar is a sequence of integers
引用Python术语表:
一个迭代器,支持通过
特殊方法使用整数索引进行高效元素访问,并定义一个__getitem__()
方法返回序列的长度。一些内置序列类型包括__len__()
、list
、str
和tuple
。bytes
Martijns 的回答很棒。但如果你想明确指出只允许使用
list
和 tuple
(而不是其他序列,srt
),你最好使用 Union[list, tuple]
from typing import Union
def foo(bar: Union[list, tuple]:
# the code