Résumons le standard de codage Python PEP8 (2)

Résumé de la norme de codage Python PEP8 (1) A continué

commentaire

Bloquer le commentaire

Les commentaires de bloc (#) s'appliquent généralement à certains codes qui suivent et se mettent en retrait au même niveau que ce code.

Commentaire en ligne

Laissez au moins deux espaces entre l'instruction et le commentaire en ligne. Pas besoin de commentaires en ligne explicites.

mauvais exemple:
x = x + 1          #Augmenter x de 1

Chaînes de documentation (également appelées «docstrings»)

Vous devez écrire une docstring pour chaque module, fonction, classe ou méthode.

Convention de dénomination

Le principe le plus important

Utilisez un nom qui reflète l'utilisation plutôt que l'implémentation

Méthode de dénomination pratique

b (1 lettre minuscule)
B (1 lettre supérieure)
lowercase
lower_case_with_underscores
UPPERCASE
UPPER_CASE_WITH_UNDERSCORES
CapitalizedWords

Conventions de dénomination à suivre

-Ne pas utiliser les lettres simples «l» (ell inférieur), «O» (o supérieur) et «I» (œil supérieur) comme variables. -Faire le nom du module un nom court dans toutes les lettres minuscules -Utilisez la méthode CapWords pour les noms de classe (connectez les mots en les mettant en majuscule) -Les variables globales limitées intra-module sont précédées d'un trait de soulignement (_) pour indiquer clairement qu'elles sont privées. -Les noms des fonctions doivent être en minuscules uniquement -Toujours utiliser self comme nom du premier argument de la méthode d'instance -Toujours utiliser cls pour le nom du premier argument de la méthode de classe -Utilisez uniquement les noms de méthode et les variables d'instance en minuscules, et séparez les mots avec des traits de soulignement si nécessaire. ・ Écrivez les constantes en majuscules et séparez les mots avec des traits de soulignement.

Conception de l'héritage

-Ne pas ajouter de trait de soulignement au début des attributs publics -Si le nom de l'attribut publié est en conflit avec le mot réservé, ajoutez un trait de soulignement immédiatement après le nom de l'attribut. · Utilisez les propriétés pour masquer l'implémentation des appels de fonction avec une simple syntaxe d'accès aux données ・ S'il existe un attribut que vous ne souhaitez pas utiliser dans la sous-classe, ajoutez deux traits de soulignement au début du nom au lieu de la fin.

Interfaces publiques et internes

· Une interface documentée est considérée comme une interface publique à moins que le document ne la déclare explicitement comme une interface interne. · Les interfaces internes (packages, modules, classes, fonctions, attributs, autres noms) sont précédées d'un trait de soulignement.

Recommandations de programmation

· Ecrire du code qui ne désavantage pas les autres implémentations Python (PyPy, Jython, IronPython, Cython, Psyco, etc.) -Toujours utiliser est ou n'est pas en comparaison avec None -Toutes les opérations lors de la mise en œuvre du tri en utilisant la comparaison étendue (__eq__, __ne__, __lt__, __le__, __gt__, __ge__) Implémenter -Toujours utiliser l'instruction def au lieu d'écrire une instruction d'affectation qui connecte l'expression lambda directement à l'identifiant

Bon exemple:
def f(x): return 2*x
mauvais exemple:
f = lambda x: 2*x

· Essayez de dériver une exception d'une exception au lieu d'une BaseException · Python3 utilise «élever X à partir de Y» pour échanger explicitement les exceptions sans perdre le retraçage d'origine -Utilisez lever ValueError ('message') pour lever une exception dans Python2 -Lors de la capture d'une exception, spécifiez une exception spécifique au lieu du brut sauf: qui ne spécifie pas d'exception.

Comme ça
try:
    import platform_specific_module
except ImportError:
    platform_specific_module = None

-Si vous voulez lier l'exception interceptée à un nom spécifique, nommez explicitement l'exception

Comme ça
try:
    process_data()
except Exception as exc:
    raise DataProcessingFailedError(str(exc))

· Utiliser explicitement la nouvelle hiérarchie d’erreurs liée au système d’exploitation lors de la détection des erreurs du système d’exploitation -Pour tous les try / except, limitez la plage incluse dans try au code minimum nécessaire.

Bon exemple:
try:
    value = collection[key]
except KeyError:
    return key_not_found(key)
else:
    return handle_value(value)
mauvais exemple:
try:
    #Le processus d'inclusion dans try est trop important
    return handle_value(collection[key])
except KeyError:
    # handle_value()Attrape également le KeyError généré par
    return key_not_found(key)

· Utilisez l'instruction with si la ressource n'est utilisée que dans une partie spécifique du code ・ Écrivez la déclaration de retour de manière cohérente. -S'il y a une instruction return dans la fonction qui renvoie une expression, l'instruction return qui ne renvoie aucune valeur est explicitement écrite comme return None. -Utilisez la méthode string plutôt que le module string · Utilisez «» .startswith () et «». Endswith () au lieu du découpage de chaîne pour vérifier si une chaîne a un préfixe ou un suffixe spécifique.

Bon exemple: if foo.startswith('bar'):
mauvais exemple: if foo[:3] == 'bar':

· Utilisez toujours isinstance () pour comparer les types d'objets au lieu de comparer directement les types

Bon exemple: if isinstance(obj, int):
mauvais exemple: if type(obj) is type(1):

-Pour les séquences, utilisez le fait que la séquence vide est False.

Bon exemple: if not seq:
       if seq:

mauvais exemple: if len(seq):
       if not len(seq):

-Ne pas écrire de littéraux de chaîne de caractères qui dépendent de caractères vides en fin de ligne · Arrêtez d'utiliser == pour comparer les valeurs booléennes avec True ou False

Bon exemple:      if greeting:
mauvais exemple:      if greeting == True:
Pire exemple:  if greeting is True:

Annotation de fonction

Code qui souhaite utiliser des annotations de fonction dans un style différent de PEP484 (https://www.python.org/dev/peps/pep-0484/#suggested-syntax-for-python-2-7-and-straddling-code) sur,

type: ignore

Est écrit vers le début du fichier. Cela indique au programme de vérification de type d'ignorer toutes les annotations.

en conclusion

Si vous comprenez simplement qu'il est écrit de cette manière, je pense que ce niveau de contenu est suffisant. Si vous voulez en savoir plus (pourquoi vous devriez l'écrire de cette façon), veuillez vous référer à Documentation.

Recommended Posts

Résumons le standard de codage Python PEP8 (1)
Résumons le standard de codage Python PEP8 (2)
[Norme de codage Python] PEP 8 vs Google Style
Construire un environnement conforme à la norme de codage Python (PEP8) avec Eclipse + PyDev
[Python] Ajuster la norme de la carte des couleurs
[Blender x Python] Maîtrisons le matériel !!
Lisons le fichier RINEX avec Python ①
[Python] Résumez les éléments rudimentaires du multithreading
python> guide de codage> PEP 0008 --Style Guide for Python Code
Python amateur tente de résumer la liste ①
Depuis Python 3.4, pip devient le programme d'installation standard! ??
Traduction japonaise: PEP 20 - Le Zen de Python
Introduction à Python Préparons l'environnement de développement
Analysons le journal de validation git en Python!
[Python] Exécutons le module régulièrement en utilisant schedule
[Python] Entrée standard
Premier Python ~ Codage 2 ~
amateur python tente de résumer la liste ②
Résumons Apache
Synthétiser l'importation Python
Trier en Python. Pensons ensuite à l'algorithme.
HoloViews peut devenir la norme pour les outils de visualisation Python
Demandez à python d'analyser le json entré à partir de l'entrée standard
Décomposons les bases du code Python de TensorFlow
Utilisons la version Python du module API Confluence.
Utilisons les données ouvertes de "Mamebus" en Python
[Python] Souvenons-nous du nouveau style d'écriture après pip10
[Python] Changeons l'URL du site administrateur de Django
J'ai essayé de résumer les opérations de chaîne de Python
Trouvez le maximum de Python
le zen de Python
[Python] Fractionner la date
[Python] À propos de l'entrée standard
Passons en revue les spécifications du langage autour des itérateurs et des générateurs Python
Comment déboguer une bibliothèque Python standard dans Visual Studio
Changer la destination de sortie standard en un fichier en Python
Touchons l'API de Netatmo Weather Station avec Python. #Python #Netatmo
(Python3) Non oO (Utilisez-vous la bibliothèque standard?): 5 shaders
Python> règle de codage> PEP8> read_chpoint.py: 20: 1: E302 attendait 2 lignes vides, trouvé 1