Pylint E0202 Ложное срабатывание? Или этот кусок кода неправильный?

Я работал над классом со свойствами, но столкнулся с неприятной проблемой с pylint (0.25.1). В приведенном ниже коде мы определяем класс со свойством, которое было введено в python 2.6. Однако pylint ноет по поводу того, что в методе __init__self.aPropertyбудет перезаписан определенный метод с именем aProperty. Я также вставил вывод из консоли и вывод сообщений pylint.

Является ли это случаем «пожалуйста, сообщите разработчикам pylint» или этот фрагмент (пример) кода неверен?

"""example module"""

class Example(object):
    """example class"""

    @property
    def aProperty(self):
        """get"""
        print "using getter"
        return self._myPropertyValue

    @aProperty.setter
    def aProperty(self, value):
        """set"""
        print "using setter"
        self._myPropertyValue = value

    def secondPublicMethodToIgnorePylintWarning(self):
        """dummy"""
        return self.aProperty

    def __init__(self):
        """init"""
        self._myPropertyValue = None

        self.aProperty = "ThisStatementWillRaise E0202"

anExample = Example()
print anExample.aProperty

anExample.aProperty = "Second binding"
print anExample.aProperty

Консольный вывод:

с использованием установщика
с использованием геттера
ThisStatementWillRaise E0202
используя сеттер
с использованием геттера
Вторая привязка

Pylint Output:

E0202: 7,4:Example.aProperty: Атрибут, затронутый в строке 26 test1, скрывает этот метод
E0202: 13,4:Example.aProperty: Атрибут, затронутый в строке 26 test1, скрывает этот метод

6
задан Daan Timmer 9 March 2012 в 09:26
поделиться