class Config(object):
def __init__(self):
super(Config, self).__init__()
self.config_dict = self.read_config()
self.config_path = os.path.join(BASEDIR, CONFIG_NAME)
def get_client_id(self):
BLA BLA BLA
def generate_config(self):
BLA BLA BLA
def read_config(self):
BLA BLA BLA
def write_config(self, custom=None):
BLA BLA BLA
def __setattr__(self, name, value):
if name in self.config_dict:
self.config_dict[name] = value
self.write_config()
else:
self.__dict__[name] = value
def __getattr__(self, name):
if name in self.config_dict:
return self.config_dict[name]
def __delattr__(self, name):
if name in self.config_dict:
del self.config_dict[name]
self.write_config()
else:
del self.__dict__[name]
Ошибка:
File "blabla.py", line 49, in __init__
self.config_path = os.path.join(BASEDIR, CONFIG_NAME)
File "blabla.py", line 96, in __setattr__
if name in self.config_dict:
File "blabla.py", line 103, in __getattr__
if name in self.config_dict:
<................>
File "blabla.py", line 103, in __getattr__
if name in self.config_dict:
RuntimeError: maximum recursion depth exceeded while calling a Python object
Я просто понять не могу, где тут получается рекурсия, с учетом того, что __getattr__ вызывается только при попытке обращения к несуществующим аттрибутам.