[code-quality] False negative for pylint E0203 when using += operator?
Sylvain Thénault
sylvain.thenault at logilab.fr
Tue Mar 18 09:32:21 CET 2014
On 17 mars 19:40, Andreas Maier wrote:
> Hi,
Hi,
> I am using PyLint 1.1.0 with Python 2.6, and found that the following
> code does not raise E0203 "Access to member '%s' before its
> definition line %s", as it should:
>
> class MyClass1(object):
> def __init__(self):
> self.first += 5 # Does not raise E0203 as it should
> self.first = 0
>
> Just for comparison, when omitting the straight assignment on the
> second line of the method, message E1101 is raised, so the instance
> attribute is (correctly) recognized to be read before the addition:
>
> class MyClass2(object):
> def __init__(self):
> self.first += 5 # Correctly raises E1101:
> # Instance of 'MyClass2' has no
> # 'first' member
>
> Also just for comparison, here is code that correctly raises E0203:
>
> class MyClass3(object):
> def __init__(self):
> self.first = self.sec # Correctly raises E0203:
> # Access to member 'sec' before
> # its definition line <N>
> self.sec = 0
>
> When researching this behavior, I seem to have found a notice somewhere
> stating that the += operator is incorrectly not recognized by PyLint
> as reading the value first, but I could not find the notice again,
> nor could I find an entry for this issue in the (new) PyLint issues
> list at https://bitbucket.org/logilab/pylint/issues/
>
> My questions are:
> * Should this be considered a bug in PyLint?
> * If so, has this been reported already?
IIRC it has indeed already been mentioned but I'm not sure there is a proper
issue for it. And your report is nice, so please put it as an issue in bitbucket
an mark it as important.
Thx
--
Sylvain Thénault, LOGILAB, Paris (01.45.32.03.12) - Toulouse (05.62.17.16.42)
Formations Python, Debian, Méth. Agiles: http://www.logilab.fr/formations
Développement logiciel sur mesure: http://www.logilab.fr/services
CubicWeb, the semantic web framework: http://www.cubicweb.org
More information about the code-quality
mailing list