#python #json #linux #attributeerror
#python #json #linux #ошибка атрибута
Вопрос:
Мое приложение работает в Windows, и я пытаюсь настроить его для Linux.
Я получаю следующее AttributeError
:
Экземпляры Preferences не имеют атрибута ‘self.setattr‘
class Preferences:
def __init__(self):
"""
Default preferences are imported from parameters
file at each creation of an object.
The database default is not automatically
updated (file schema.sql). On Preferences parameters change,
schema.sql should be changed accordingly.
"""
with open(os.path.join(APP_ROOT, 'parameters.json')) as parameters:
json_data = json.loads(parameters.read())
# for each att(ribute) from preference file,
# create an attribute in Preferences Object
# which is a Preference object
for att in json_data['preferences']:
self.__setattr__(
att,
Preference(
**{label: json_data['preferences'][att][label] for label in json_data['preferences'][att]}))
Ответ №1:
У вашего класса буквально нет __setattr__
метода. То, что вы хотите сделать, это
setattr(self, name, value)
вместо
self.__setattr__(name, value)
Ответ №2:
Используйте setattr
вместо __setattr__
: