python @属性 无法识别下划线 属性

python @property doesn't recognize underscored property

我在 Python 中有以下 class:

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

问题是我在尝试实例化它时遇到以下错误:AttributeError: 'Zones' object has no attribute '_loader'

我说不出为什么python可以识别self._data,但不能识别self._loader

您试图在设置加载程序之前加载数据。更改 __init__() 中的顺序:

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