Maison  >  Article  >  développement back-end  >  Quelles sont les normes de codage en Python ?

Quelles sont les normes de codage en Python ?

WBOY
WBOYavant
2023-05-09 15:22:071617parcourir

Normes de codage

La raison pour laquelle les normes de codage Python sont importantes peut être résumée en une phrase : Des normes de codage uniformes peuvent améliorer l'efficacité du développement.

L'écriture du code de ps.python doit essentiellement suivre le style PEP8

1 Point-virgule

N'ajoutez pas de point-virgule à la fin de la ligne et n'utilisez pas de point-virgule pour mettre deux commandes sur la même ligne.

2. Nommage

nom_module, nom_package, nom_classe, nom_méthode

Noms à éviter

  1. Noms à caractère unique, à l'exception des compteurs et des itérateurs.

  2. Traits d'union (- dans les noms de package/module))

  3. Noms commençant et se terminant par des traits de soulignement doubles (Python réservé, tel que __init__)

Convention de dénomination

  1. Le soi-disant "interne" signifie qu'il n'est disponible que dans le module, ou, au sein de la classe Est protégé ou privé.

  2. Commencez par un seul trait de soulignement (_) pour indiquer que la variable ou la fonction du module est protégée (non inclus lors de l'utilisation de l'importation * depuis) ​​

  3. Variables d'instance commençant par un double trait de soulignement. (__) ou les méthodes représentent le privé au sein d'une classe.

  4. Placez les classes associées et les fonctions de niveau supérieur dans le même module. Contrairement à Java, il n'est pas nécessaire de limiter une classe à un module.

  5. Utilisez des mots commençant. avec des lettres majuscules pour les noms de classe (comme CapWords, c'est-à-dire le style Pascal), mais le nom du module doit être en minuscules et souligné (comme lower_with_under.py). Bien qu'il existe de nombreux modules existants utilisant des noms similaires à CapWords.py, ceci). n'est plus encouragé. Parce que si le nom du module est le même que le nom de la classe, cela prêtera à confusion

3. Longueur de ligne

Chaque ligne ne doit pas dépasser 80 caractères

Sauf dans les situations suivantes :

  1. URL des commentaires de la déclaration du module d'importation longue

  2. N'utilisez pas de barres obliques inverses pour connecter les lignes.

Python connectera implicitement les lignes entre parenthèses, crochets et accolades, vous pouvez profiter de cette fonctionnalité Si nécessaire, vous pouvez ajouter une paire de parenthèses supplémentaires autour de l'expression.

Recommandation :

foo_bar(self, width, height, color='black', design=None, x='foo',
             emphasis=None, highlight=0)
 
     if (width == 0 and height == 0 and
         color == 'red' and emphasis == 'strong'):

Si une chaîne de texte ne tient pas sur une seule ligne, vous pouvez utiliser des parenthèses pour obtenir une connexion de ligne implicite :

x = ('这是一个非常长非常长非常长非常长 '
     '非常长非常长非常长非常长非常长非常长的字符串')

4. Indentation

Utilisez 4 espaces pour indenter le code

Ne l'utilisez jamais, et ne mélangez pas les tabulations et les espaces. Dans le cas d'une concaténation de lignes, vous devez soit aligner verticalement les éléments enveloppés (voir la section :ref:`Line_length44761aa7499d6dd57277a30698412b6d` pour un exemple), soit utiliser un retrait suspendu de 4 espaces (là ne devrait pas y avoir de paramètres dans la première ligne pour le moment) :

       # 与起始变量对齐
       foo = long_function_name(var_one, var_two,
                                var_three, var_four)
 
       # 字典中与起始值对齐
       foo = {
           long_dictionary_key: value1 +
                                value2,
           ...
       }

5. Lignes vides

Deux lignes vides entre les définitions de niveau supérieur, une ligne vide entre les définitions de méthode

Deux lignes vides entre les définitions de niveau supérieur, telles que définitions de fonction ou de classe . Il devrait y avoir une ligne vide entre la définition de méthode, la définition de classe et la première méthode, si vous pensez que cela est approprié, laissez une ligne vide à certains endroits

6. être utilisé conformément aux normes typographiques standard. Espaces des deux côtés des points de ponctuation

Aucun espace entre parenthèses.

Utilisez des espaces des deux côtés des points de ponctuation conformément aux conventions typographiques standard

正确示范: spam(ham[1], {eggs: 2}, [])
错误示范: spam( ham[ 1 ], { eggs: 2 }, [ ] )

Classes

Une classe. devrait avoir un document décrivant la classe sous sa définition String. Si votre classe a des attributs publics (Attributs), alors il devrait y avoir une section d'attributs (Attributs) dans le document et elle doit suivre le même format que les paramètres de la fonction.

class SampleClass(object):
    """Summary of class here.
    Longer class information....
    Longer class information....
    Attributes:
        likes_spam: A boolean indicating if we like SPAM or not.
        eggs: An integer count of the eggs we have laid.
    """
 
    def __init__(self, likes_spam=False):
        """Inits SampleClass with blah."""
        self.likes_spam = likes_spam
        self.eggs = 0
 
    def public_method(self):
        """Performs operation blah."""
.

8, commentaires de bloc et commentaires de ligne

Les zones qui nécessitent le plus de commentaires sont les parties techniques du code. Si vous devez l'expliquer lors de votre prochaine révision de code, vous devez le commenter maintenant. Pour les opérations complexes, vous. doit écrire quelques commentaires avant de commencer l'opération. Commentaires de ligne. Pour le code qui n'est pas explicite, les commentaires doivent être ajoutés à la fin de ses lignes

# We use a weighted dictionary search to find out where i is in
# the array.  We extrapolate position based on the largest num
# in the array and the array size and then do binary search to
# get the exact number.
 
if i & (i-1) == 0:        # true iff i is a power of 2

Pour améliorer la lisibilité, les commentaires doivent laisser au moins 2 espaces dans le code.

Par contre, ne décrivez jamais le code. Supposez de lire le code. Les gens connaissent Python mieux que vous, ils ne savent tout simplement pas ce que fait votre code

# BAD COMMENT: Now go through the b array and make sure whenever i occurs
# the next element is i+1

9, strings

正确示范: 
     x = a + b
     x = '%s, %s!' % (imperative, expletive)
     x = '{}, {}!'.format(imperative, expletive)
     x = 'name: %s; score: %d' % (name, n)
     x = 'name: {}; score: {}'.format(name, n)
错误示范: 
    x = '%s%s' % (a, b)  # use + in this case
    x = '{}{}'.format(a, b)  # use + in this case
    x = imperative + ', ' + expletive + '!'
    x = 'name: ' + name + '; score: ' + str(n)

10, importer des packages

Chacun. l'importation doit être sur sa propre ligne

正确示范: 
import os 
import sys
错误示范:   import os, sys

Les importations doivent toujours être placées en haut du fichier, situées après les commentaires et les docstrings du module, et avant les variables et constantes globales du module. Les importations doivent être regroupées du plus courant au moins courant :

Importation de bibliothèque standard Importation de bibliothèque tierce Importation spécifique à l'application

【Résumé】

1 Nommer

    les fonctions, variables et propriétés doivent être orthographiées en minuscules, uniquement liées à _, do. ne suivez pas la méthode de dénomination Camel Case
  1. Les classes et les exceptions doivent avoir leur première lettre en majuscule, n'utilisez pas _ Connections
  2. Les propriétés d'instance protégées doivent commencer par un seul trait de soulignement
  3. Les propriétés privées de l'instance doivent commencer avec un double trait de soulignement
  4. Les mots variables au niveau du module doivent être en majuscules et séparés par un seul trait de soulignement
  5. Les variables doivent être aussi significatives que possible
  6. 2 Espace blanc

    Chaque niveau d'indentation est lié. La syntaxe est représentée par 4 espaces
  1. Il doit y avoir un espace de chaque côté du signe égal lors de l'attribution d'une valeur
  2. Le nombre de caractères occupés par chaque ligne ne doit pas dépasser 79. En fonctionnement réel, vous devez essayez de ne pas laisser la barre de défilement de ligne de l'éditeur de code s'afficher
  3. Lors de l'utilisation de fonctions pour la programmation fonctionnelle, il doit y avoir deux lignes vides entre les fonctions

  4. Pour les fonctions d'une classe, il doit y avoir une ligne vide entre les fonctions

  5. Si la fonction et la classe sont identiques niveau, alors ils devraient avoir deux lignes vides entre elles

  6. Pour les expressions longues qui dépassent le nombre spécifié de caractères par ligne, vous devez appuyer sur Entrée pour mettre en retrait. Habituellement, à l'exception de la première ligne, toutes les autres lignes doivent être en retrait. par 4 espaces à nouveau sur la base d'origine

3. Déclaration

  1. Pour juger si une variable est Aucune, Faux ou Vrai, n'utilisez pas ==, utilisez par exemple si a est Aucun

  2. L'instruction d'importation doit être placée au début de la phrase et essayez de l'importer. Utilisez des importations absolues au lieu d'importations relatives, et il est préférable de spécifier une fonction spécifique du module correspondant lors de l'importation, par exemple, from datetime import datetime.

  3. Lors de l'importation de modules, ils doivent être classés en fonction des modules de bibliothèque standard, des modules tiers et des modules auto-utilisés.

  4. Lors de la détection que le conteneur n'est pas vide, vous devez utiliser le nom du conteneur if, pour. exemple, lists = [] if lists

  5. Utilisez le mot négatif sous forme en ligne, ne mettez pas le mot négatif devant l'expression entière, par exemple, cela devrait être si a n'est pas Aucun au lieu de si ce n'est pas a est Aucun

4. Les commentaires

  1. doivent être utilisés pour décrire les fonctions de certains blocs de code importants. Des commentaires sur une seule ligne doivent être utilisés pour décrire les fonctions de l'ensemble du module.

  2. Les descriptions détaillées des fonctions et l'utilisation des classes ou des fonctions doivent utiliser des chaînes de documentation
  3. Les commentaires Python doivent être en anglais autant que possible

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer