e-s*_*tis 9 python type-hinting
假设我想接受任何我可以召唤的东西int(),或者任何我可以召唤的东西str()。我该如何使用新的类型提示来做到这一点?
注释 withtyping.SupportsInt不起作用,因为 mypy 会警告不要传递字符串。
你不能,不能使用类型提示。类型提示不能说明字符串的内容,只能说明它必须是字符串。
请注意, Python 中的所有内容都可以转换为字符串(__repr__始终可用);因此对于“可以转换为字符串”可以由 处理typing.Any。
对于int(),只能再次指定特定的钩子和类型;您可以指定您将接受具有__int__() 方法的对象,但如果您还接受字符串,则无法指定该字符串中的内容。
所以:
AcceptableToInt = Union[SupportsInt, str, bytes, bytearray]
Run Code Online (Sandbox Code Playgroud)
会让你检查什么类型接受,但不会在你实际尝试时int()检查它们是否会抛出异常。ValueError
| 归档时间: |
|
| 查看次数: |
2323 次 |
| 最近记录: |