我试图创建一个泛型类来表示一个值有上下限,并执行这些边界。在
from typing import Any, Optional, TypeVar
T = TypeVar("T")
class Bounded(object):
def __init__(self, minValue: T, maxValue: T) -> None:
assert minValue <= maxValue
self.__minValue = minValue
self.__maxValue = maxValue
然而,mypy抱怨说:
^{pr2}$显然,键入module不允许我表达这一点(尽管它looks like添加{
我认为检查对象是否有__eq__
和{
经过更多的研究,我找到了一个解决方案:协议。因为它们不是完全稳定的(Python3.6还没有),它们必须从
typing_extensions
模块导入。在现在我们可以将我们的类型定义为:
^{pr2}$我很高兴:
相关问题 更多 >
编程相关推荐