aperçu concisLOGIN

aperçu concis

Aperçu concis

1. Encodage

  • S'il n'y a pas de circonstances particulières, les fichiers utiliseront tous l'encodage UTF-8

  • S'il n'y a pas de circonstances particulières, #-*-coding doit être ajouté à l'en-tête du fichier : UTF-8-*-Idential

2, format de code

2.1, rétrécissement

  • Utiliser uniformément 4 grilles vides pour l'indentation

2. 2, largeur

pour chaque ligne de code doit essayer de ne pas dépasser 80 caractères (elle peut légèrement dépasser 80 dans des cas particuliers, mais la longueur maximale ne doit pas dépasser 120)

Raison :

  • Ceci est utile lors de la visualisation latérale différences à côté

  • Il est pratique de visualiser le code sous la console

  • S'il est trop long, cela peut être un défaut de conception

2.3, guillemets

En termes simples, naturel le langage utilise des guillemets doubles et le marquage automatique utilise des guillemets simples, donc dans le code La plupart devraient utiliser des guillemets simples

  • Le langage naturel utilise des guillemets doubles "..."

Par exemple, les messages d'erreur ; dans de nombreux cas, il s'agit toujours d'Unicode, utilisez u"Hello World"

  • Utilisez des guillemets simples pour l'identification de la machine '...' Par exemple, la clé dans dict

  • l'expression régulière utilise des guillemets doubles natifs r". .."

  • La chaîne de document (docstring) utilise trois guillemets doubles """.... .."""

2.4. Lignes vides

  • Deux lignes vides entre les fonctions au niveau du module et définitions de classe ;

  • Une ligne vide entre les fonctions membres de la classe ;

class A:
    def __init__(self):
        pass
    def hello(self):
        pass
def main():
    pass
  • Plusieurs lignes vides peuvent être utilisées pour séparer plusieurs groupes de fonctions associées

  • Vous pouvez utiliser des lignes vides pour séparer les codes logiquement liés. dans une fonction

2.5, encodage

  • Le fichier utilise l'encodage UTF-8

  • Ajouter #-*-conding:utf-8-*-logo à l'en-tête du fichier

3. Instruction d'importation

L'instruction d'importation doit être écrite sur des lignes séparées

# 正确的写法
import os
import sys
# 不推荐的写法
import sys,os
# 正确的写法
from subprocess import Popen, PIPE
import语句应该使用 absolute import
# 正确的写法
from foo.bar import Bar
# 不推荐的写法
from ..bar import Bar
  • L'instruction d'importation doit être placée en tête du fichier, après la description du module et la docstring, avant les variables globales ;

    Les instructions d'importation doivent être disposées dans l'ordre, avec une ligne vierge séparant chaque groupe

  • import os
    import sys
    import msgpack
    import zmq
    import foo

Peut être utilisée lors de l'importation de définitions de classe d'autres modules. Importation relative
  • from myclass import MyClass

Si un conflit de nom survient, vous peut utiliser l'espace de noms
  • import bar
    import foo.bar
    bar.Bar()
    foo.bar.Bar()

  • 4, des espaces

Un espace de chaque côté de l'opérateur binaire [=,-,+= ,==,>,in,is not, et] :
  • # 正确的写法
    i = i + 1
    submitted += 1
    x = x * 2 - 1
    hypot2 = x * x + y * y
    c = (a + b) * (a - b)
    # 不推荐的写法
    i=i+1
    submitted +=1
    x = x*2 - 1
    hypot2 = x*x + y*y
    c = (a+b) * (a-b)

Dans la liste des paramètres de la fonction, il doit y avoir un espace après
    # 正确的写法
    def complex(real, imag):
        pass
    # 不推荐的写法
    def complex(real,imag):
        pass
    • Dans la liste des paramètres de la fonction, n'ajoutez pas d'espaces de part et d'autre du signe égal de la valeur par défaut

    # 正确的写法
    def complex(real, imag=0.0):
        pass
    # 不推荐的写法
    def complex(real, imag = 0.0):
        pass
    • Après le crochet de gauche, n'ajoutez pas d'espaces supplémentaires avant le crochet de droite

    # 正确的写法
    spam(ham[1], {eggs: 2})
    # 不推荐的写法
    spam( ham[1], { eggs : 2 } )
    • Le côté gauche de l'objet dictionnaire Aucun espace supplémentaire avant les crochets

    # 正确的写法
    dict['key'] = list[index]
    # 不推荐的写法
    dict ['key'] = list [index]
    • Aucun espace supplémentaire utilisé pour aligner les instructions d'affectation

    # 正确的写法
    x = 1
    y = 2
    long_variable = 3
    # 不推荐的写法
    x             = 1
    y             = 2
    long_variable = 3

    5. entre parenthèses. Il y a actuellement deux situations.

    1. La deuxième ligne est en retrait au début des parenthèses

    foo = long_function_name(var_one, var_two,
                             var_three, var_four)

    2. La deuxième ligne est en retrait de 4 espaces, ce qui convient à la situation où la parenthèse de départ est une nouvelle ligne

    def long_function_name(
            var_one, var_two, var_three,
            var_four):
        print(var_one)

    Utilisez des barres obliques inverses pour les nouvelles lignes, opérations binaires Les symboles + ., etc. doivent apparaître à la fin de la ligne ; les chaînes longues peuvent également être renvoyées à la ligne en utilisant cette méthode

    session.query(MyTable).\
            filter_by(id=1).\
            one()
    print 'Hello, '\
          '%s %s!' %\
          ('Harry', 'Potter')

    Les instructions composées sont interdites, c'est-à-dire que plusieurs instructions sont incluses dans une seule ligne :

    # 正确的写法
    do_first()
    do_second()
    do_third()
    # 不推荐的写法
    do_first();do_second();do_third();

    if/for/while doit être renvoyé à la ligne :

    # 正确的写法
    if foo == 'blah':
        do_blah_thing()
    # 不推荐的写法
    if foo == 'blah': do_blash_thing()

    6 , docstring

    Les deux points les plus fondamentaux de la spécification docstring sont :

    1 Tous les modules, fonctions, classes et méthodes publics doivent être écrits en. docstring. Les méthodes privées ne sont pas nécessairement obligatoires, mais doivent être accompagnées d'un commentaire de bloc après la définition.

    2. La fin """ de la docstring doit occuper sa propre ligne, à moins que cette docstring n'ait qu'une seule ligne.

    """Return a foobar
    Optional plotz says to frobnicate the bizbaz first.
    """
    """Oneline docstring"""
    section suivante
    chapitredidacticiel