mypy可以接受继承属性的注释吗?

2024-04-23 14:09:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个奇怪的情况,添加显式类型提示似乎会使mypy失败。在

此代码验证(Python 3.6.1,mypy0.540):

class BaseA:
    def __init__(self):
        self.foo: float = 1.0

class DerivedA(BaseA):
    @property
    def foo(self):
        return 2.0

但是告诉mypy财产的回报是失败的

^{pr2}$

相关的,我认为,不使用注释也会因多重继承而失败,无论注释的是哪种组合(两种,或一种都没有):

class BaseC:
    foo: float = 1.0

class MixinC:
    @property
    def foo(self):
        return 2.0

class DerivedC(MixinC, BaseC):
    pass

# error: Definition of "foo" in base class "MixinC" is incompatible with
# definition in base class "BaseC"

你知道为什么,或者怎么改变吗?在


Tags: inself类型basereturnfoodef情况