standard online name python coding-style

online - Estilo de Python



python package name (6)

De la guía de estilo de Python :

Con respecto a enumerar una expresión compuesta:

Las declaraciones compuestas (declaraciones múltiples en la misma línea) generalmente se desalientan.

Sí:

if foo == ''blah'': do_blah_thing() do_one() do_two() do_three()

O para el código que proporcionó, el ejemplo de Greg es bueno:

if filecmp.cmp(local, config_file): shutil.copyfile(remote, config_file) else: shutil.copyfile(local, config_file)

Más bien no:

if foo == ''blah'': do_blah_thing() do_one(); do_two(); do_three()

Nombres de métodos y variables de instancia

Utilice las reglas de denominación de funciones: minúsculas con palabras separadas por guiones bajos según sea necesario para mejorar la legibilidad.

Actualización: por solicitud de Oscar, también se enumera cómo se vería su código de esta manera.

Pregunta simple para principiantes:

Creé una pequeña secuencia de comandos python para alternar entre dos archivos que estoy usando para probar.

Mi pregunta es, ¿cuál es un buen estilo de formato de python para el siguiente código:

import filecmp import shutil local = "local.txt" remote = "remote.txt" config_file = "C:/some/path/file.txt" shutil.copyfile( remote if( filecmp.cmp(local, config_file ) ) else local, config_file )

O

shutil.copyfile( remote if( filecmp.cmp(local, config_file ) ) else local, config_file )

O

tocopy = remote if( filecmp.cmp( local, config_file ) ) else local shutil.copyfile( tocopy, config_file )

¿O que?

Además, ¿cuál es la forma preferida de nombrar var en python para nombres de varias palabras, es "to_copy", "tocopy", "toCopy", "ToCopy"

Gracias.


El nombre más común que he visto es palabras separadas de underscode, to_copy.

En cuanto al estilo de formato, no he visto tal acuerdo. Encuentro

source = remote if filecmp.cmp(local, config_file) else local shutil.copyfile(source, config_file)

ser el más claro entre tus opciones.

Y viendo que todos prefieren dividir el archivo, si al menos encapsulara la llamada del archivo de copia en caso de que algún día desee cambiarla:

def copy_to(source, destination): shutil.copyfile(source,destination) if filecmp.cmp(local, config_file): copy_to(remote, config_file) else: copy_to(local, config_file)


La tercera opción parece la más natural para mí, aunque el uso de espacios en paréntesis laterales y paréntesis superfluos contradice la guía de estilo de Python .

Esa guía también responde la pregunta to_copy, pero probablemente usaría nombres más claros por completo.

Lo escribiría como:

import filecmp import shutil local = "local.txt" remote = "remote.txt" destination = r"C:/some/path/file.txt" source = remote if filecmp.cmp(local, destination) else local shutil.copyfile(source, destination)


Para la declaración condicional, probablemente iría con:

if filecmp.cmp(local, config_file): shutil.copyfile(remote, config_file) else: shutil.copyfile(local, config_file)

En este caso, hay poca necesidad de usar la línea y if x else z , ya que el código circundante es bastante simple.



Qué pasa:

import filecmp import shutil local = "local.txt" remote = "remote.txt" config_file = "C:/some/path/file.txt" if filecmp.cmp( local, config_file): to_copy = remote else: to_copy = local shutil.copyfile( to_copy, config_file )

¡Ay! ¡Este nombre de pantalla abierto se ve terrible!