小编fla*_*gam的帖子

Iterable[str] 不是 str 的 Python 类型提示

在Python中,有没有办法区分字符串和其他字符串的可迭代对象?

Astr作为Iterable[str]类型是有效的,但这可能不是函数的正确输入。例如,在这个简单的示例中,旨在对文件名序列进行操作:

from typing import Iterable

def operate_on_files(file_paths: Iterable[str]) -> None:
    for path in file_paths:
        ...
Run Code Online (Sandbox Code Playgroud)

传入单个文件名会产生错误的结果,但不会被类型检查捕获。我知道我可以在运行时检查字符串或字节类型,但我想知道是否可以使用类型检查工具捕获类似的愚蠢错误。

我查看了该collections.abc模块,似乎没有任何 abc 包含典型的可迭代对象(例如列表、元组)但排除字符串。同样,对于typing模块来说,似乎没有不包含字符串的迭代类型。

python types type-hinting

20
推荐指数
1
解决办法
4013
查看次数

标签 统计

python ×1

type-hinting ×1

types ×1