свойство заглушки python "неразрешенная ссылка на атрибут" в реализации класса - PullRequest
0 голосов
/ 03 декабря 2018

Я создал интерфейс класса в моем модуле pyi (sche.pyi):

class Catalog:

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

, а в своем файле sche.py я реализовал класс следующим образом:

class Catalog:

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

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

PyCharmговорит "Неразрешенная ссылка на атрибут" __elements "для класса Catalog"

1 Ответ

0 голосов
/ 03 декабря 2018

Я думаю, это будет работать, если вы создадите Class Interface следующим образом:

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]:
...