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.
――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
article | PEP8 | |
---|---|---|
É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,with Phrases etassert Peut être utilisé dans etc. |
with Ne 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 , I Interdire |
原則Interdire。例外はカウンタ・イテレータのi etc,except Danse , De l'objet fichierf |
D'avant en arrière_ Appellation |
_xxx , __xxx , xxx_ Mentionner le cas d'utilisation |
Si non public_xxx 、__xxx Est obsolète |
Style Lambda | Si vous affectez à une variabledef Inscrire |
ワンライナー用に使え。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 |
#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.
classe
et la première méthode
--ʻSi name == Utilisez '__ main __' `+
pour concaténer deux chaînes. Utilisez %
, str.format ()
, f-string
,str.join ()
pour concaténer plus que cela.map ()
et filter ()
--Nest quand l'instruction with
fait exactement deux lignes, n'utilisez pas \
--Sheban n'a pas besoin d'être écrit, cela n'a pas de sens d'écrire dans un fichier qui n'est pas exécuté directement()
. Écrivons ()
pour spécifier le taple.for
ou deux ou plusieurs instructions de contrôle dans la notation d'inclusion / expression du générateur.@ staticmethod
et faites-en une fonction de niveau module.
--Utilisez @ classmethod
pour les méthodes utilisées comme constructeurs nommés ou pour les méthodes qui changent l'état global d'une classeGoogle, é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