#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()