gpt4 book ai didi

字符串序列的Python类型注释,但不是字符串?

转载 作者:IT老高 更新时间:2023-10-28 20:23:06 24 4
gpt4 key购买 nike

是否存在匹配列表、元组和可能的其他顺序类型但不匹配字符串的 Python 类型提示?

问题在于字符串同时是长度为 1 的字符串的序列(例如单个字符),因此它们在技术上匹配 Sequence[str],但向期望的函数提供字符串在 100% 的情况下,字符串列表是错误的。

有没有办法从类型注释中排除字符串,使其类似于不存在的 And[Sequence[str], Not[str]]

至于目的,我想对这个函数进行注释:

PathType = Union[str, os.PathLike]
def escape_cmdline(argv: Union[List[PathType], Tuple[PathType]]) -> str: ...

但是现有的签名对我来说看起来很臃肿,并且不包括任何与列表和元组兼容的自定义类型。有没有更好的办法?

最佳答案

显然,类型提示无法做到这一点。根据 Guido van Rossum 的说法,PEP 484 无法区分 Sequence[str]Iterable[str]str

来源:https://github.com/python/mypy/issues/1965https://github.com/python/typing/issues/256

关于字符串序列的Python类型注释,但不是字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44912374/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com