Как убедить PyCharm не ругаться на мой метод?
У меня в программе есть метод:
def import_config(self, flag=None):
"""Функция 'посредник', между GUI и 'config_generate', работает в двух режимах, в зависимости от передаваемого
флага. В режиме импорта забирает словарь, сгенерированный 'config_generate' и заполняет 'lineEdit's напротив
'label's. А в режиме экспорта считывает с 'lineEdit's данные, формирует из них словарь и отдает его в
'config_generate'."""
dict_imp = config_generate()
list_of_lines = sorted([x for x in dir(ui) if "lineEdit" in x], key=lambda x: int(x.split("_")[-1]))
list_of_labels = sorted([x for x in dir(ui) if "label" in x], key=lambda x: int(x.split("_")[-1]))
list_of_labels.remove('label_2')
lst_eval_labels = list(eval("(self." + ", self.".join(list_of_labels) + ")"))
lst_eval_lines = list(eval("(self." + ", self.".join(list_of_lines) + ")"))
if flag != 'export':
for x in range(0, 49):
lst_eval_lines[x].setText(dict_imp[lst_eval_labels[x].text().rstrip()])
else:
values = []
text_of_labels = []
for x in range(len(lst_eval_labels)):
text_of_labels.append(lst_eval_labels[x].text().rstrip())
for x in lst_eval_lines:
values.append(x.text())
config_generate(dict(zip(text_of_labels, values)))
Ему не нравится, что это метод, а не функция: "Method 'import_config' may be 'static'". Либо же он предлагает сделать его статическим. Если вы знакомы с методом eval(), то вы сразу поймете в чем тут загвоздка. Я не могу пойти не на первый вариант, не на второй. Может быть у вас есть мысли, как решить проблему?
Ответы (1 шт):
ругается PyCharm в данном примере из-за того, что функция является методом, но не использует преимуществ метода. другими словами ключевое слово self нигде не используется. если хотите, вы можете выключить этот warning. наведите курсор на имя функции и нажмите Alt + Enter, в всплывающем окне будут варианты решения вопроса, где один из них будет Disable Inspection.