I have a function that can accept as input any variable that can be indexed, such as a list or a tuple. How do I indicate this in the type-hint of the function?
Your method is accepting a sequence, so use typing.Sequence
. That's a generic, so you can specify what type of object(s) the sequence must contain:
from typing import Sequence
def foo(bar: Sequence[int]):
# bar is a sequence of integers
Quoting the Python glossary:
An iterable which supports efficient element access using integer indices via the
__getitem__()
special method and defines a__len__()
method that returns the length of the sequence. Some built-in sequence types arelist
,str
,tuple
, andbytes
.