Bienvenue sur IndexError.

Ici vous pouvez poser des questions sur Python et le Framework Django.

Consultez la FAQ pour améliorer vos chances d'avoir des réponses à vos questions.

paramètres too many Pylint

0 votes

Bonjour
quelqu'un serait t'il me dire pourquoi pylint, me dit:
apps\core\functions\functions_postgresql.py:5:4: R0913: Too many arguments (6/5) (too-many-arguments)

sur:

class WithCnxPostgresql:
    """
    Classe de connection à postgresql avec with
    """
    def __init__(self, host, port, name, user, password):
        self.connexion = None
        self.host = host
        self.port = port
        self.dbname = name
        self.user = user
        self.password = password

        i = 0
        while i < 5:
            try:
                self.connexion = psycopg2.connect(
                    host=self.host,
                    port=self.port,
                    dbname=self.dbname,
                    user=self.user,
                    password=self.password
                )
                break

            except psycopg2.Error as error:
                log_line = f"WithCnxPostgresql error: {error}\n"
                print(log_line)

            i += 1

    def __enter__(self):
        return self.connexion

    def __exit__(self, exc_type, exc_val, exc_tb):
        if self.connexion is not None:
            self.connexion.close()

merci d'avance, de votre aide

demandé 18-Sep-2018 par bidochon (210 points)

2 Réponses

+1 vote

Il me semble que la pep8 conseil de limité à 5 arguments, comme l'indique pylint là avec (6/5)

def __init__(self, host, port, name, user, password)

j'en compte bien 6

répondu 18-Sep-2018 par ptank (370 points)

merci ptank,
alors du coup il faut utiliser *args?

Certaine fois on peut oublier la norme, sinon oui *args, **kwargs (j'aime bien nommer les entrées lors d'un appel). Ou sinon même un dict d'options ce qui revient au **kwargs.

0 votes

Pylint considère que 5 arguments pour une fonction ça va bien comme ça !
Or tu en as 6 d'où le message.

répondu 23-Sep-2018 par bob
...