gpt4 book ai didi

python - "can be converted to"的类型提示是什么意思?

转载 作者:太空宇宙 更新时间:2023-11-03 14:59:24 25 4
gpt4 key购买 nike

假设我想接受任何我可以调用 int() 的东西,或者任何我可以调用 str() 的东西。我如何使用新的类型提示来做到这一点?

使用 typing.SupportsInt 注释不起作用,因为 mypy 会警告不要传递字符串。

最佳答案

你不能,不能使用类型提示。类型提示不能说明字符串的内容,只能说明它必须是一个字符串。

请注意,Python 中的一切 都可以转换为字符串(因为__repr__ 始终可用);所以对于“可以转换为字符串”可以通过 typing.Any 处理。

对于int(),只能再次指定具体的钩子(Hook)和类型;您可以指定您将接受具有 __int__() 的对象方法,但如果您还接受字符串,则无法指定该字符串的内容。

所以:

AcceptableToInt = Union[SupportsInt, str, bytes, bytearray]

会让您检查 int() 接受哪些类型,但如果您实际尝试时它们会抛出 ValueError 异常,则不会。

关于python - "can be converted to"的类型提示是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39505379/

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