当比较多个类型的并集时,确保mypy可以得到比较值总是相同类型的提示

问题描述

我得到了mypy引发的以下回溯:

dust/core/validator/_validators.py:504: error: Unsupported operand types for < ("str" and "ValidateProperty")
dust/core/validator/_validators.py:504: error: Unsupported operand types for < ("float" and "ValidateProperty")
dust/core/validator/_validators.py:504: error: Unsupported operand types for < ("float" and "str")
dust/core/validator/_validators.py:504: error: Unsupported operand types for < ("str" and "float")

用于类似下面的代码。

class Value(ValidateProperty):
    def __init__(min_value: VALUE_RANGE=None,max_value: VALUE_RANGE=None):
        if min_value is not None and max_value is not None:
            if max_value < min_value:
                raise ValueError(f"max_value can not be less than min_value")

VALUE_RANGE在哪里

VALUE_RANGE = typing.Union[FLOAT,STRING,None]

这样:

FLOAT = typing.Union[float,"ValidateProperty",None]
STRING = typing.Union[str,None]

ValidateProperty是具有__get____set__方法的ABC类。

如何确保mypy获得的共同值始终是相同类型的?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...