如何在类上注释__add__(双下划线)方法的类型?

时间:2018-07-18 19:58:06

标签: python-3.x types mypy

我正在尝试注释类的__add__方法,以便可以将其实例添加在一起。但是,我无法指定此方法采用另一个相同类型的实例:

class Foo:
    def __init__(self, v: int) -> None:
        self.v = v
    def __add__(self, other: Foo) -> Foo:
        return Foo(self.v + other.v)

但是我似乎收到关于Foo尚未定义的错误,因为它在自己的方法定义之一中引用了Foo

    def __add__(self, other: Foo) -> Foo:
NameError: name 'Foo' is not defined

我该如何正确注释它,以便mypy在有代码尝试向其他类的实例添加此类的实例时向我发出警告?

0 个答案:

没有答案