python @property не распознает подчеркнутое свойство

#python-3.x #properties

Вопрос:

У меня есть следующий класс на Python:

 class Zones(implements(DataLoader)):   def __init__(self, loader: GoogleCsvHandler):  self._data = self._load_data()  self._loader = loader    @property  def data(self) -gt; typing.OrderedDict:  return self._data    @property  def loader(self) -gt; GoogleCsvHandler:  return self._loader    def _load_data(self):  data = self.loader.load()    return data    def get_dataframe(self) -gt; pd.DataFrame:  return pd.DataFrame()    def validate(self) -gt; bool:  return True  

Проблема в том, что при попытке создать его экземпляр я получаю следующую ошибку: AttributeError: 'Zones' object has no attribute '_loader' .

Я не могу сказать , почему python может идентифицировать self._data , но не может распознать self._loader .

Ответ №1:

Вы пытаетесь загрузить данные перед настройкой загрузчика. Измените порядок в __init__() :

 class Zones(implements(DataLoader)):   def __init__(self, loader: GoogleCsvHandler):  self._loader = loader  self._data = self._load_data()