Thursday, 16 May 2019

pylint protection again self-assignment

I have this test file:

"""module docstring"""


class Aclass:
    """class docstring"""

    def __init__(self, attr=None, attr2=None):
        self.attr = attr
        self.attr2 = attr2

    def __repr__(self):
        return 'instance_of the Aclass {self.attr}.'

    def __str__(self):
        return 'The A with: {self.attr}.'


def init_a():
    """function docstring"""
    a_inst = Aclass()
    attr = 1
    attr2 = 2
    a_inst.attr2 = attr2
    # should be: a_inst.attr = attr, but have a typo
    attr = attr

and I inspect it using pylint, and the output shows everything is alright.

$ pylint test.py 

--------------------------------------------------------------------
Your code has been rated at 10.00/10 (previous run: 10.00/10, +0.00)

Based on the linting, i expect the flag about suspicious usage in software language, because i don't know when this code a=1; a=a can be useful. And I want to see some warning, for example: unused variable or self-assignment etc. Is there way using the pylint? (I know about Pycharm and sonarqube). Example of the sonar rules.

public void foo() {
    int x = 3;
    x = x;
}

Such assignments are useless, and may indicate a logic error or typo.

details about the pylint

pylint 2.3.1
astroid 2.2.5
Python 3.6.5 (default, May  5 2019, 22:05:54) 
[GCC 6.3.0 20170516]



from pylint protection again self-assignment

No comments:

Post a Comment