web-dev-qa-db-fra.com

Python formatage de la liste des arguments de la fonction

Quelle est la meilleure façon de formater le morceau de code suivant en fonction de PEP8:

oauth_request = oauth.OAuthRequest.from_consumer_and_token(consumer,
    token=token, verifier=verifier, http_url=ACCESS_TOKEN_URL)

Le problème est que si je place plus d'un paramètre sur la première ligne, la ligne dépasse 79 caractères. Si je place chacun des paramètres sur une ligne séparée avec une indentation de 4 espaces, cela semble assez moche:

oauth_request = oauth.OAuthRequest.from_consumer_and_token(
    consumer,
    token=token,
    verifier=verifier,
    http_url=ACCESS_TOKEN_URL)

La meilleure option que je propose est d'ajouter une indentation supplémentaire pour mieux distinguer:

oauth_request = oauth.OAuthRequest.from_consumer_and_token(
                        consumer,
                        token=token,
                        verifier=verifier,
                        http_url=ACCESS_TOKEN_URL)

J'essaie d'élaborer une règle générale pour moi de l'utiliser pour des méthodes avec une longue invocation sur la première ligne et plusieurs paramètres qui ne peuvent pas tenir sur une seule ligne.

43
sam

Ma lecture de la documentation suggère que 2 et 3 sont tous les deux acceptables, mais il semble que 2 soit préféré (je dis cela parce qu'il ressemble à 2 contre 3 est géré de cette façon dans les exemples, je ne pense pas que la spécification de style soit très spécifique ici). 1 est sorti (regardez la documentation sous la ligne Arguments on first line forbidden when not using vertical alignment)

31
cwallenpoole