繁体   English   中英

什么是“可以转换为”的类型提示是什么意思?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM