Bonjour. Immédiatement, le code source que vous avez écrit est-il facile à lire?
Il existe de nombreuses opportunités pour des personnes autres que vous-même de voir le code que vous écrivez, par exemple lors du co-développement avec plusieurs personnes, de sa publication sur Internet ou de sa diffusion. Si le code que vous écrivez à de tels moments est bien formaté, vous serez en mesure de le comprendre rapidement sans aucun malentendu, non seulement pour le lecteur mais aussi pour réviser votre propre code.
Dans de tels cas, les conventions utilisées pour formater le code Python sont ** PEP 8 ** et ** PEP 257 **.
Cet article ne suit pas strictement le contenu de PEP 8 et PEP 257, mais présente quelques règles typiques qui peuvent être comprises avec désinvolture et obtenir l'apparence minimale **. Faire.
#!/usr/bin/env python
# -*- coding: utf-8 -*-
Tout d'abord, cela est souvent écrit au début du code. La première ligne est ** Shiban (Sheban) ** et la deuxième ligne est appelée ** Magic Comment **.
** Shiban ** décrit quelque chose comme "Veuillez exécuter ce fichier avec ce programme".
En écrivant ceci, lorsque vous souhaitez exécuter ce code (temporairement nommé sample.py),
$ python sample.py
ne pas
$ ./sample.py
Vous pourrez l'exécuter avec la commande de.
Vient ensuite ** Magic Comment **, qui selon PEP8 n'est ** pas obligatoire ** s'il s'agit de code source Python3 et écrit en UTF-8.
Le commentaire magique décrit l'encodage de caractères du code écrit, et il semble qu'il ne devrait pas être décrit car le code de caractère par défaut dans Python 3 est UTF-8.
Il existe trois règles principales pour les instructions d'importation.
# OK
import os
import sys
# NG
import sys, os
from sklearn.model_selection import GridSearchCV, train_test_split
import os
import sys
from sklearn.model_selection import GridSearchCV, train_test_split
from mypackage import sample
Docstring
Une description de la fonction ou de la classe définie. C'est beaucoup de travail à décrire, mais cela semble différent avec et sans.
def my_func(x):
"""
Renvoie la valeur au carré.
Parameters
----------
x : int
Valeur entière cible
Returns
-------
y : int
Valeur au carré d'entrée
"""
y = x ** 2
return y
Mettez la Docstring entre ** 3 doubles guillemets **. La cotation simple est NG. Vous pouvez écrire le contenu après la ligne avec des guillemets doubles.
#C'est aussi OK
def my_func_hoge(x):
"""Renvoie la valeur au carré.
Parameters
----------
x : int
Valeur entière cible
Returns
-------
y : int
Valeur au carré d'entrée
"""
y = x ** 2
return y
#Écrivons au moins un résumé.
def my_func_fuga(x):
"""Renvoie la valeur au carré."""
y = x ** 2
return y
Sur la première ligne, écrivez un résumé de la fonction ou de la classe cible. En guise de mise en garde, assurez-vous que le dernier caractère est un point demi-largeur **.
Après le résumé, insérez une ligne vide pour énumérer les arguments, et après l'argument, insérez une ligne vide pour énumérer les valeurs de retour.
Il semble qu'il y ait des choses qui sont bonnes avec Jupyter etc. si vous écrivez ceci, mais l'explication ici est omise.
C'est ce qu'on appelle l'abaissement. Utilisez ** 4 espaces ** au lieu de tabulations. Cependant, lors de l'utilisation de tensorflow, le retrait a tendance à être profond, donc deux espaces sont acceptables.
#Si l'argument de la fonction devient long, la ligne saute selon la position de parenthèse gauche.
a = long_name_function(hikisu_ichi, hikisu_ni,
hikisu_san, hikisu_yon)
#Réduisez le retrait et commencez une nouvelle ligne
b = long_name_function(
hikisu_ichi, hikisu_ni,
hikisu_san, hikisu_yon)
#Les sauts de ligne avec un retrait abaissé à partir du milieu sont NG
c = long_name_function(hikisu_ichi, hikisu_ni,
hikisu_san, hikisu_yon)
Pause dans les formules longues
#Il est OK s'il est unifié de casser avant ou après la formule
result_1 = (sushiki_ichi
+ sushiki_ni
- (sushiki_san - susiki_yon)
- susiki_go)
result_2 = (sushiki_ichi +
sushiki_ni -
(sushiki_san - susiki_yon) -
susiki_go)
En principe, laissez deux lignes au niveau supérieur, c'est-à-dire des sauts de ligne sans retrait, et une ou moins de lignes dans le cas contraire.
# OK
hoge = {'fuga': [0]}
# NG
hoge = { 'fuga': [ 0 ] }
# OK
if a == b:
c = {'d': 1}
# NG
if a == b :
c = {'d' : 1}
#L'exception est le deux-points utilisé pour le tranchage
array[2:5]
a = i + 1
b = c >= d
e = f not in g_list
h = j and k
#Cependant, il est utilisé pour décrire les paramètres par défaut dans les fonctions, etc.=Ne laissez pas d'espace des deux côtés
def hoge(piyo=None):
pass
#Utilisé pour décrire les arguments lors de la spécification des mots-clés de fonction=Ne laissez pas d'espace des deux côtés
piyopiyo = hoge(piyo=1)
x = (b + (b**2 - 4*a*c) ** 0.5) / (-2*a)
Comment était-ce? Cette fois, je n'ai pas couvert tous les PEP 8 et PEP 257, mais j'espère que vous comprendrez approximativement le type de points auxquels vous devriez prêter attention.
Je serais très heureux si vous lisiez cet article et que vous souhaitiez poursuivre un codage lisible et beau.