[英]What's the type hint for “can be converted to” mean?
假设我想接受任何我可以调用int()
东西,或者我可以调用str()
东西。 如何使用新类型提示执行此操作?
用typing.SupportsInt
注释typing.SupportsInt
不起作用,因为mypy将警告不要传递字符串。
你不能,不能用类型提示。 类型提示不能说明字符串的内容 ,只是它必须是一个字符串。
请注意,Python中的所有内容都可以转换为字符串(因为__repr__
始终可用); 所以'可以转换为字符串'可以通过typing.Any
来处理。 typing.Any
。
对于int()
,您只能再次指定特定的钩子和类型; 你可以指定你会接受有一个对象__int__()
方法,但如果你也接受字符串,你不能指定哪些是该字符串。
所以:
AcceptableToInt = Union[SupportsInt, str, bytes, bytearray]
会让你检查int()
接受什么类型,但是如果他们在你真正尝试时会抛出一个ValueError
异常。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.