Почему интерпретатор подсвечивает как ошибку setter?

Рейтинг: 0Ответов: 1Опубликовано: 22.02.2023

Почему PyCharm подсвечивает как ошибку строку @get_phones.setter? Пишет: Names of function and decorator don't match; property accessor is not created

class Phone:

def __init__(self):
    self._value = None

@property
def get_phones(self):
    return self._value

@get_phones.setter
def set_phones(self, phones):
    self._value = phones

Ответы

▲ 3Принят

PyCharm подсвечивает эту строку как ошибку, потому что имена декоратора и метода не совпадают.

В этом случае, декоратор называется "@get_phones.setter", а соответствующий метод называется "set_phones". Чтобы устранить эту ошибку, вам нужно изменить имя метода на "get_phones" для соответствия декоратору

  class Phone:

    def __init__(self):
        self._value = None

    @property
    def get_phones(self):
        return self._value

    @get_phones.setter
    def get_phones(self, phones):
        self._value = phones