【问题标题】:python @property doesn't recognize underscored propertypython @property 无法识别带下划线的属性
【发布时间】:2021-11-10 22:08:25
【问题描述】:

我在 Python 中有以下类:

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

【问题讨论】:

    标签: python-3.x properties


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2015-07-11
      • 2012-08-11
      • 2015-03-08
      • 1970-01-01
      • 1970-01-01
      • 2023-03-05
      • 1970-01-01
      • 1970-01-01
      • 2013-01-18
      相关资源
      最近更新 更多