Articles of código de

¿Cómo sangrar la lista de comprensión de Python?

Las comprensiones de listas pueden ser útiles en ciertas situaciones, pero también pueden ser bastante horribles de leer. Como un ejemplo ligeramente exagerado, ¿cómo sangrarías lo siguiente? allUuids = [x.id for x in self.db.query(schema.allPostsUuid).execute(timeout = 20) if x.type == “post” and x.deleted is not False]

Estilo python

Pregunta simple para principiantes: He creado una pequeña secuencia de comandos de 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( […]

estilo, formatear el operador de corte

PEP 8 no menciona el operador de corte. Desde mi entendimiento, a diferencia de otros operadores, no debería estar rodeado de espacios en blanco. spam[3:5] # OK spam[3 : 5] # NOT OK ¿Se mantiene esto cuando se usan expresiones complejas, es decir, cuál se considera mejor estilo? 1. spam [jamón (66) // 3: 44 […]

Idioma para desempaquetar tupla larga

Escenario: tiene una tupla larga como resultado de una consulta SQL y desea descomprimirla en valores individuales. ¿Cuál es la mejor manera de hacerlo mientras se ajusta a PEP8? Hasta ahora tengo estas tres opciones: asignación única, use la barra invertida para dividir en varias líneas person_id, first_name, last_name, email, \ birth_date, graduation_year, home_street, \ […]

Excluyendo propiedades abstractas de los informes de cobertura.

Tengo una clase base abstracta a lo largo de las líneas de: class MyAbstractClass(object): __metaclass__ = ABCMeta @abstractproperty def myproperty(self): pass Pero cuando ejecuto pruebas de detección (qué cobertura) en mi proyecto, se queja de que la línea de definición de propiedad no está probada. En realidad, no se puede probar (AFAIK), ya que la […]

¿Es una buena práctica agregar nombres a __all__ usando un decorador?

¿Es esta una buena práctica en Python (de Active State Recipes – Public Decorator )? import sys def public(f): “””Use a decorator to avoid retyping function/class names. * Based on an idea by Duncan Booth: http://groups.google.com/group/comp.lang.python/msg/11cbb03e09611b8a * Improved via a suggestion by Dave Angel: http://groups.google.com/group/comp.lang.python/msg/3d400fb22d8a42e1 “”” all = sys.modules[f.__module__].__dict__.setdefault(‘__all__’, []) if f.__name__ not in all: […]

¿La notación de puntos del estilo de Javascript para las claves de diccionario no es un tono?

He empezado a usar construcciones como estas: class DictObj(object): def __init__(self): self.d = {} def __getattr__(self, m): return self.d.get(m, None) def __setattr__(self, m, v): super.__setattr__(self, m, v) Actualización: basado en este hilo, he revisado la implementación de DictObj para: class dotdict(dict): def __getattr__(self, attr): return self.get(attr, None) __setattr__= dict.__setitem__ __delattr__= dict.__delitem__ class AutoEnum(object): def __init__(self): […]

Herramienta para hacer cumplir los estándares / estilo de código de Python

Estoy tratando de encontrar una herramienta para verificar el estilo de encoding en Python. Para PHP, he visto que existe el Code Sniffer y un pequeño script de Perl utilizado por Drupal. ¿Existe tal herramienta para el código de python?

En Python, ¿debería usar else después de una devolución en un bloque if?

Primero, no pude encontrar una respuesta a esto en PEP 8 . Eso no significa que no esté allí. Siéntete libre de señalarme. ¿Qué estilo prefieres? El primero : if spam: # Do stuff. return eggs else: # Maybe do other stuff. return parrots o el segundo : if spam: # Do stuff. return eggs […]

Formato de alineación decimal en Python

Esto debería ser fácil. Aquí está mi matriz (más bien, un método para generar matrices de prueba representativas): >>> ri = numpy.random.randint >>> ri2 = lambda x: ”.join(ri(0,9,x).astype(‘S’)) >>> a = array([float(ri2(x)+ ‘.’ + ri2(y)) for x,y in ri(1,10,(10,2))]) >>> a array([ 7.99914000e+01, 2.08000000e+01, 3.94000000e+02, 4.66100000e+03, 5.00000000e+00, 1.72575100e+03, 3.91500000e+02, 1.90610000e+04, 1.16247000e+04, 3.53920000e+02]) Quiero una lista […]