类实现中的python存根属性“未解析的属性引用”

Posted

技术标签:

【中文标题】类实现中的python存根属性“未解析的属性引用”【英文标题】:python stub property "Unresolved Attribute Reference" in Class Implementation 【发布时间】:2019-05-04 22:46:10 【问题描述】:

我在我的 pyi 模块 (scheme.pyi) 中创建了一个类接口:

class Catalog:

    @property
    def elements(self) -> List[Element]: ...

在我的 scheme.py 中,我实现了这样的类:

class Catalog:

    def __init__(self, element_collection):
        self.__elements = element_collection

    @property
    def elements(self):
        return self.__elements

PyCharm 说“类目录的未解析属性引用“__elements””

【问题讨论】:

【参考方案1】:

如果你像这样制作类接口,我认为它会起作用:

class Catalog:

    def __init__(self, element_collection) -> None:
        self.__elements: List[Element]

    @property
    def elements(self) -> List[Element]:

或者您可以选择在类主体中声明实例变量,如下所示:

class Catalog:

    self.__elements: List[Element]

    @property
    def elements(self) -> List[Element]:

【讨论】:

我会说这是一种解决方法,最好提交问题youtrack.jetbrains.com/issues/PY

以上是关于类实现中的python存根属性“未解析的属性引用”的主要内容,如果未能解决你的问题,请参考以下文章

随笔⑧ java中的存根类 --- Stub

强制 Eclipse 为派生类中纯虚函数的实现提供存根

如何告诉 Pex 不要存根具有具体实现的抽象类

如何在 Mockery 中为受保护的属性存根公共设置方法

如何使用 ocmock 存根 AppDelegate 上的属性?

OCMock:存根 @dynamic 属性