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

推荐答案

你的方法是接受sequence,所以使用typing.Sequence.这是一个泛型,因此您可以指定序列必须包含的对象类型:

from typing import Sequence

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

引用Python glossary条:

一个iterable,通过__getitem__()特殊方法支持使用整数索引的高效元素访问,并定义了返回序列长度的__len__()方法.一些内置序列类型为liststrtuplebytes.

Python-3.x相关问答推荐

只有在Chrome尚未打开的情况下,打开Chrome后,PySimpleGUI窗口才会崩溃

网站抓取:当我使用Chrome DevTools中的网络选项卡时,找不到正确的URL来提供我想要的数据

如何转换Pandas中的数据,以使我 Select 的列名变为行值并增加行?

如何使用TensorFlow Keras子类化来构建和训练模型

切片时是否在NumPy ND数组中创建新对象?

根据第一个字典的值序列对第二个字典进行排序

以特定方式重新排列 pandas 数据框的列

Python 3 - 给定未知数量的类别动态地将字典嵌套到列表中

当我判断另一个 checkButton 时,如何判断两个 python tkinter checkButtons?

对齐文本文件中的列

两个字符串之间的正则表达式匹配?

UnicodeDecodeError:utf-8编解码器无法解码位置 1 的字节 0x8b:无效的起始字节,同时读取Pandas中的 csv 文件

如何从同一文件夹中的模块导入功能?

Python图例属性错误

Linux Mint 上的 Python3 错误没有名为蓝牙的模块

无 Python 错误/错误?

如何删除目录? os.removedirs 和 os.rmdir 是否只用于删除空目录?

调用 Python doctest 时如何启用省略号?

注册 Celery 基于类的任务

Python 无法处理以 0 开头的数字字符串.为什么?