Как обойти предупреждение «Атрибут экземпляра, определенный вне __init__» от PyCharmPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как обойти предупреждение «Атрибут экземпляра, определенный вне __init__» от PyCharm

Сообщение Anonymous »


Я написал этот класс с множеством переменных, которые мне нужно иметь возможность сбросить до значений по умолчанию в любой момент. Первоначально я «объявил» и инициализировал (насколько вы, кажется, можете объявить в Python) их в __init__, но это создало проблему: когда я хотел, чтобы внешняя сила установила эти переменные по умолчанию value мне пришлось бы повторить тридцать с лишним строк кода (поскольку в классе около тридцати переменных).

Я видел здесь еще одно сообщение, в котором описывается аналогичная проблема, но принятым ответом было установить для каждой переменной значение None, и тогда вы сможете без проблем получать к ним доступ из функций внутри класса.

В C++ вы объявляете эти переменные как переменные в заголовке, а затем можете вызывать одну и ту же функцию как при создании экземпляра, так и при вызове class_name.set_to_default(), и это все просто и аккуратно.

Наверняка есть способ сделать то же самое в Python без ошибки для каждой переменной? Что-то вроде:

класс Motor(): защита __init__(сам): self.reset_all_values() защита reset_all_values(self): self.speed_value = DEFAULT_SPEED_VALUE self.hours_value = DEFAULT_HOURS_VALUE # и т. д. Если да, то как мне это сделать, чтобы PyCharm не ныл на меня?

Или мне просто нужно быть невероятно многословным в коде? Python слишком отличается от других языков и вам приходится мыслить совершенно по-другому?

Думаю, важно отметить, что я программист на C, немного знаю C++ и понимаю, что, возможно, я просто слишком много думаю об этих языках.
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»