AttributeError: Экземпляр настроек не имеет атрибута __setattr__ - PullRequest
0 голосов
/ 11 апреля 2019

Мое приложение работает в Windows, и я пытаюсь настроить его для Linux.

Я получаю следующие AttributeError:

Экземпляры настроек не имеют атрибута 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]}))

Ответы [ 2 ]

0 голосов
/ 11 апреля 2019

Используйте setattr вместо __setattr__:

https://docs.python.org/3/library/functions.html#setattr

0 голосов
/ 11 апреля 2019

В вашем классе буквально нет метода __setattr__. То, что вы хотите сделать, это

setattr(self, name, value)

вместо

self.__setattr__(name, value)
...