[Norme de codage Python] PEP 8 vs Google Style

introduction

La norme de codage la plus connue pour Python est la norme de code de bibliothèque standard PEP 8, mais [Google Python Style Guide](https: /) /google.github.io/styleguide/). J'ai donc essayé de résumer en quoi Google Style est différent de PEP 8. De la conclusion, c'était presque le même que PEP 8, donc j'ai omis les règles communes (en particulier les lignes vides et les blancs). Bien qu'il existe des différences, il se peut que certains points ne puissent pas être abordés, mais pardonnez-moi.

Remarque

――Les deux traductions japonaises sont disponibles, mais elles ne sont peut-être pas les plus récentes, j'ai donc fait référence autant que possible à la version anglaise. --PEP 8 est du domaine public, Google Style Guide est CC by 3.0

Tableau de comparaison

article PEP8 Google
Écrivez plusieurs phrases sur une seule ligne Devrait s'arrêter en principe if foo: bar(foo)Estelseを伴わなければOK。それ以外EstNG。;N'utilisez pas trop.
Longueur maximale d'une ligne 79 caractères 80 caractères
Longueur maximale d'une exception de ligne 99 caractères sont acceptables avec l'accord de l'équipe, 72 caractères dans la ligne de commentaire quand même Exceptions à l'importation d'instructions, d'URL et de chemins
Continuation de ligne\ Les parenthèses sont préférables,withPhrases etassertPeut être utilisé dans etc. withNe pas utiliser à moins que l'instruction ne comporte 3 lignes ou plus
Utilisation de docstring non-Non requis pour les méthodes publiques, écrivez d'autres non-Ecrire sauf pour les méthodes publiques, courtes et évidentes
style docstring Aucun (le contenu à écrire en PEP257 est décrit) Oui
Contenu du commentaire N'écrivez pas des choses évidentes Ne pas expliquer le code lui-même, suivre la grammaire, l'orthographe et la ponctuation anglaises
Citations de chaîne'``" l'un ou l'autre fera l'affaire Décidez lequel utiliser dans le projet
Chaîne de caractères sur plusieurs lignes (hors docstring) Lors de l'utilisation de guillemets triples""" Principe sur la corde'Dans le projet qui a décidé d'utiliser'''Mais c'est d'accord. Il existe également des références à d'autres styles d'écriture
Style de commentaire TODO Aucun Oui
Commande d'importation Bibliothèque standard-> bibliothèque externe-> bibliothèque locale Presque identique à PEP8, mais clairement indiqué dans l'ordre lexical
1 caractère variable l, O, IInterdire 原則Interdire。例外はカウンタ・イテレータのietc,exceptDanse, De l'objet fichierf
D'avant en arrière_Appellation _xxx, __xxx, xxx_Mentionner le cas d'utilisation Si non public_xxx__xxxEst obsolète
Style Lambda Si vous affectez à une variabledefInscrire ワンライナー用に使え。Style Lambda部分が60-Utilisez la fonction imbriquée lorsqu'elle dépasse 80 caractères.operatorモジュールにある関数をStyle Lambdaで書くな
return Si vous l'utilisez, retournez dans tous les cas, écrivez quelque chose après le retour Aucune mention
Cohérence Ceux qui sont trop particuliers sur leur cœur sont étroits Être cohérent

Comment écrire lors de la jonction de lignes entre parenthèses

#OK avec PEP8 ou Google
#Aligner pour ouvrir les crochets
 foo = long_function_name(var_one, var_two,
                          var_three, var_four)
 meal = (spam,
         beans)
#OK avec PEP8 ou Google
#retrait suspendu (4 espaces)
foo = long_function_name(
    var_one, var_two, var_three,
    var_four)
meal = (
    spam,
    beans)

#Autorisé pour PEP8, NG pour Google (2 espaces)
foo = long_function_name(
  var_one, var_two,
  var_three, var_four)

#Non mentionné dans PEP8, OK dans Google
foo = {
    long_dictionary_key: value1 +
                         value2,
    ...
}
foo = {
    long_dictionary_key:
        long_dictionary_value,
        ...
}

#Aucune mention dans PEP8, NG dans Google
foo = {
    long_dictionary_key:
    long_dictionary_value,
    ...
}

#OK pour PEP8, pas de mention pour Google?
def long_function_name(
        var_one, var_two, var_three,
        var_four):
    print(var_one)


#OK dans PEP8, non mentionné dans Google, peut-être NG
my_list = [
    1, 2, 3,
    4, 5, 6,
    ]
result = some_function_that_takes_arguments(
    'a', 'b', 'c',
    'd', 'e', 'f',
    )

#Je pense que Google aime ce style d'écriture. PEP8 est également OK.
my_list = [
    1, 2, 3,
    4, 5, 6,
]
result = some_function_that_takes_arguments(
    'a', 'b', 'c',
    'd', 'e', 'f')

--Break break avant opérateur binaire dans PEP8, non mentionné dans Google --PEP8 illustre la description lorsque la condition de l'instruction if devient longue, Google ne la mentionne pas --Google stipule la notation lors de l'utilisation d'annotations de fonction, PEP8 ne mentionne pas ――Personnellement, le retrait suspendu est moins gênant et je l'aime parce que je peux utiliser efficacement une ligne.

Autres éléments mentionnés uniquement dans le guide de style Google

Impressions

Google, écris la même chose que PEP 8 orz, il était difficile de tout lire. C'était bien que j'ai décidé comment écrire une docstring et une annotation de type en détail.

Recommended Posts

[Norme de codage Python] PEP 8 vs Google Style
Conforme à la norme de codage Python PEP8
Résumons le standard de codage Python PEP8 (1)
python> guide de codage> PEP 0008 --Style Guide for Python Code
Résumons le standard de codage Python PEP8 (2)
Conforme à la norme de codage Python PEP8
Appliquer le formateur Google Java Style avec IntelliJ
EP 2 Suivez le guide de style PEP 8
Prise en charge de Java 1 1 par Google App Engine
python> guide de codage> PEP 0008 --Style Guide for Python Code
[Norme de codage Python] PEP 8 vs Google Style
Comment vérifier automatiquement si le code que vous avez écrit dans Google Colaboratory correspond à la norme de codage python "pep8"
[Python] Entrée standard
Construire un environnement conforme à la norme de codage Python (PEP8) avec Eclipse + PyDev
Premier Python ~ Codage 2 ~
python> guide de codage> PEP 0008 --Style Guide for Python Code
Changer le style de matplotlib
Résumé sur le style pythonique (1): PEP8
Appliquer le formateur Google Java Style avec IntelliJ
EP 2 Suivez le guide de style PEP 8
Prise en charge de Java 1 1 par Google App Engine
python> guide de codage> PEP 0008 --Style Guide for Python Code
[Norme de codage Python] PEP 8 vs Google Style
Expose settings.json pour un codage Python efficace avec VS Code
Version d'exécution de l'environnement standard Google App Engine / Python
[Python] À propos de l'entrée standard
Python> règle de codage> PEP8> read_chpoint.py: 20: 1: E302 attendait 2 lignes vides, trouvé 1