什么类型提示同时包含列表和元组?

问题描述 投票:0回答:2

我有一个函数可以接受任何可以索引的变量作为输入,例如列表或元组。如何在函数的类型提示中指出这一点?

python python-3.x type-hinting
2个回答
81
投票

您的方法接受 序列,因此请使用

typing.Sequence
。这是一个通用的,因此您可以指定序列必须包含的对象类型:

from typing import Sequence

def foo(bar: Sequence[int]):
    # bar is a sequence of integers

引用Python术语表

一个迭代器,支持通过

__getitem__()
特殊方法使用整数索引进行高效元素访问,并定义一个
__len__()
方法返回序列的长度。一些内置序列类型包括
list
str
tuple
bytes


0
投票

Martijns 的回答很棒。但如果你想明确指出只允许使用

list
tuple
(而不是其他序列,
srt
),你最好使用
Union[list, tuple]

from typing import Union

def foo(bar: Union[list, tuple]:
    # the code
© www.soinside.com 2019 - 2024. All rights reserved.