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 groupeimport os import sys import msgpack import zmq import foo
from myclass import MyClass
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)
# 正确的写法 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èsesfoo = 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"""