如何在mypy中为同时含字符串、字符串列表的列表编写类型提示
符合mypy规范的类型标注方案
根据你描述的参数结构,我们可以用联合类型来表示列表元素的两种可能形态,分Python版本的写法如下:
- Python 3.10及以上版本(支持PEP 604联合运算符和内置类型泛型标注)
可以直接用更简洁的语法完成标注:def f(x: list[str | list[str]]) -> None: print(x) - Python 3.9及更早版本
需要从typing模块引入对应的标注类型实现:from typing import Union, List def f(x: List[Union[str, List[str]]]) -> None: print(x)
以上两种写法都可以通过mypy的类型检查,完全匹配你给出的示例结构:参数x是一个列表,列表元素既可以是字符串,也可以是所有元素均为字符串的子列表。
内容的提问来源于stack exchange,提问作者baxx
相关产品推荐
相关产品推荐

