¿Python necesita estándares?
2. Formato básico, como sangría/espacio/línea en blanco/nueva línea.
Sangría: Sangra 4 espacios. Normalmente, se utiliza 1 tecla Tab, pero la tecla Tab no necesariamente produce 4 teclas de espacio, por lo que a veces se producen errores.
Ancho de línea: intente no exceder los 80 caracteres por línea de código, pero no es estrictamente necesario que esté dentro de los 80 caracteres. Puedes comprobarlo un poco. Si el código es demasiado largo, significa que no está bien diseñado. Además, ver el código en la consola es conveniente y útil al pasar diferencias una al lado de la otra.
Si no hay requisitos de codificación especiales, se recomienda agregar una línea #-*-encoding: utf-8-*- al comienzo del archivo para declarar el método de codificación del archivo. Por supuesto, la codificación del archivo del programa debe ser coherente con la codificación declarada y se debe utilizar la codificación UTF-8.
2. Formato básico, como sangría/espacio/línea en blanco/nueva línea.
Sangría: Sangría de 4 espacios. Normalmente, se utiliza 1 tecla Tab, pero la tecla Tab no necesariamente produce 4 teclas de espacio, por lo que a veces se producen errores.
Ancho de línea: intente no exceder los 80 caracteres por línea de código, pero no es estrictamente necesario que esté dentro de los 80 caracteres. Puedes comprobarlo un poco. Si el código es demasiado largo, significa que no está bien diseñado. Además, ver el código en la consola es conveniente y útil al pasar diferencias una al lado de la otra.
Cita:
Las cadenas de lenguaje natural generalmente usan comillas dobles;
Usa comillas simples para la identificación de la máquina, como la clave en un diccionario;
Las expresiones regulares usan comillas dobles nativas: r "...";
Las cadenas de documentos usan tres comillas dobles: ""...", como comentarios de funciones, funciones Descripción de parámetros y valores de retorno , etc.
Líneas en blanco:
Hay dos líneas en blanco entre las funciones a nivel de módulo y las clases de definición.
Hay una línea en blanco entre las funciones de los miembros de la clase.
Por ejemplo:
Clase a:
def _ _ init _ _ (self):
Pasar
def hola(self):
Pasar
defmain():
Pasar
1
2
Tres
Cuatro
Cinco
Seis
Siete
Ocho
p>
Nueve
10
11
1
2
Tres
Cuatro
Cinco
Seis
Siete
Ocho
Nueve
10
11
(Puedes utilizar líneas en blanco dentro de las funciones para separar el código relacionado lógicamente.
)
Espacio:
En operadores binarios [=, -, =, ==, gt, in, isnot y]
#Especificación
p>i=i 1
Enviado=1
x=x*2-1
Haibo t2=x*x y*y p>
c = (a b) * (a-b)
#No estándar
i=i 1
Enviado=1
p>
x=x*2-1
Haibo t2=x*x y*y
c = (a b)*(a-b)
1
2
Tres
Cuatro
Cinco
Seis
Siete
Ocho
Nueve
10
11
12
13
p>1
2
Tres
Cuatro
Cinco
Seis
Siete
Ocho
Nueve
10
11
12 p>
13
En la lista de parámetros de la función,,,#,# debe haber un espacio después.
Por ejemplo
#Especificaciones
defcomplex (imagen real):
Pase
#No estándar
p>defcomplex (imagen real):
Pase
1
2
Tres
Cuatro
Cinco
Seis
Siete
1
2
Tres
Cuatro
Cinco
Seis
Siete
En la lista de parámetros de la función, no espere el valor predeterminado. Agregue espacios alrededor del número.
#Especificaciones
defcomplex (número real, imag=0.0):
Aprobado
#No estándar
defcomplex (número real, imag=0.0):
Pasa
1
2
Tres
Cuatro
Cinco
Seis
Siete
1
2
Tres
Cuatro
Cinco
Seis
Siete
No agregue espacios adicionales después del corchete izquierdo y antes el soporte derecho.
#Especificaciones
Spam (jamón[1], {huevos: 2})
#No estándar
Spam (jamón [1], {huevos: 2})
1
2
Tres
Cuatro
Cinco
1
2
Tres
Cuatro
Cinco
No Utilice espacio adicional antes del corchete de apertura de los objetos del diccionario.
#Especificaciones
dict[clave] = lista[índice]
#No estándar
dict[clave] = lista[ índice] 】
1
2
Tres
Cuatro
Cinco
1
2
Tres
Cuatro
Cinco
No utilice espacios adicionales para alinear las declaraciones de asignación.
#Especificaciones
x=1
y=2
long_variable=3
#No estándar
x=1
y=2
long_variable=3
1
2
Tres
Cuatro
Cinco
Seis
Siete
Ocho
Nueve
1
2
Tres
Cuatro
Cinco
Seis
Siete
Ocho
Nueve
Nuevas líneas:
Python admite nuevas líneas entre paréntesis. Hay cinco situaciones en este momento:
(1) La segunda línea tiene sangría hasta el comienzo de los corchetes.
foo = nombre_función_largo(var_uno, var_dos
var_tres, var_cuatro)
1
2
1
2
(2) La segunda línea tiene una sangría de 4 espacios, lo cual es adecuado para el caso de ajuste del corchete izquierdo.
Definir nombre de función (
No. 1, No. 2, No. 3,
var_four):
Pasar p>
1
2
Tres
Cuatro
1
2
Tres
Cuatro
(3) Utilice barras invertidas para saltos de línea. Operadores binarios,. etc. deben aparecer al final de la línea; las cadenas largas también se pueden ajustar de esta manera
session.query(mi tabla).
Condición de filtro (id=1).
Uno ()
Imprimir "Hola"
ss
("Harry", "Potter")
p>
1
2
Tres
Cuatro
Cinco
Seis p>
Siete
1
2
Tres
Cuatro
Cinco
Seis
Siete
(4) Se prohíben las declaraciones compuestas. Es decir, una línea contiene varias declaraciones:
#Specifications
do_first()
do_segundo()
do_third()
do_segundo()
do_tercero()< / p>
#Especificaciones
do_first(); do_first(); do_third();
1
2
Tres
Cuatro
Cinco
Seis
Siete
1
2 p>
Tres
Cuatro
Cinco
Seis
Siete
(5)si/ for/ while debe estar envuelto.
Por ejemplo, si:
#spec
iffoo = ='blah':
do_blah_thing()
#no estándar
iffoo = ='blah': do_blash_thing()
1
2
三< /p >
Cuatro
Cinco
Seis
1
2
Tres
Cuatro
Cinco
Seis
Declaraciones de importación
Las declaraciones de importación deben escribirse en líneas separadas, por ejemplo:
#Especificaciones
importos
importsys
desdesubprocesoimportPopen, canalización
#No estándar
Importar sistema, sistema operativo
1
2
tres
cuatro
cinco
seis
siete
1
2
tres
cuatro
cinco
Seis
Siete
La declaración de importación debe usar absolutimport
#Specifications
fromfoo.barimportBar
#nonstandard
De..Barry Potaba
1
2
三
Cuatro
Cinco
1
2
Tres
Cuatro
Cinco
La declaración de importación debe colocarse al principio del archivo, después de la descripción del módulo y la cadena de documentación, y antes de las variables globales.
Las declaraciones de importación deben estar en orden y cada grupo debe estar separado por una línea en blanco (es decir, el mismo tipo está en un bloque)
Al importar definiciones de clases de otros módulos, Puede utilizar la importación relativa.
frommyclassimportMyClass
1
1
Se pueden utilizar espacios de nombres si hay un conflicto de nombres.
Barra de importación
importfoo.bar
Barra. Bar()
foo.bar.Bar()
Muy estándar