Foros del Web » Programando para Internet » Python »

Reglas que se deben seguir al momento de escribir el codigo Python

Estas en el tema de Reglas que se deben seguir al momento de escribir el codigo Python en el foro de Python en Foros del Web. Abro este tema con la intención de llenar aquellos huecos, referente a la regla estilista que se debe seguir para escribir el código de una ...
  #1 (permalink)  
Antiguo 14/11/2011, 12:30
Avatar de wilmermorel  
Fecha de Ingreso: agosto-2011
Ubicación: Santo Domingo
Mensajes: 30
Antigüedad: 13 años, 3 meses
Puntos: 2
Pregunta Reglas que se deben seguir al momento de escribir el codigo Python

Abro este tema con la intención de llenar aquellos huecos, referente a la regla estilista que se debe seguir para escribir el código de una forma adecuada en Python.
reglas como limitar el ancho de linea a 79 caracteres.
Otras como, ¿que método usar en determinadas ocasiones para hacer comparaciones?
Código Python:
Ver original
  1. "hola" is "hola"
  2. "hola" == "hola"

Quisiera poder saber cuales son aquellas pequeñas cosas que, como programador Python, no son obligatorias seguir pero si son recomendadas ya sea por cuestiones de legibilidad del código o rendimiento de nuestros programas evitando inconvenientes al momento de hacer una actualización del mismo, y el porque debe ser así?
  #2 (permalink)  
Antiguo 14/11/2011, 13:31
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: Reglas que se deben seguir al momento de escribir el codigo Python

El operador is solo checa si es el mismo objeto obteniendo la función id.

Ejemplo:
Código:
>>> x = [1, 2, 3]
>>> y = [1, 2, 3]
>>> x is y
False
>>> x == y
True
>>> y = x
>>> x is y
True
Con respecto a tu pregunta, creo que te refieres al PEP-8 o Guía de estilo.
  #3 (permalink)  
Antiguo 15/11/2011, 08:12
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Reglas que se deben seguir al momento de escribir el codigo Python

Eso iba a comentar ayer y se ve que se me olvidó

Con is se verifica que ambos identificadores se refieran al mismo objeto, no se tienen en cuenta los valores. Con == se comparan los valores.

Una pequeña tablita comparativa (en C, tomando en cuenta las cadenas, char*):

Código:
Python       Java          C
a is b            a == b         a == b
a == b            a.equals(b)     strcmp(a, b) == 0
Además de la guía de estilo, yo mencionaría cosas como el "es mejor pedir perdón que pedir permiso", que se refiere a escribir:

Código Python:
Ver original
  1. try:
  2.     a = milista[5]
  3. except IndexError:
  4.     print 'no hay un índice 5'

en vez de algo como

Código Python:
Ver original
  1. if len(milista) >= 6:
  2.     a = milista[5]
  3. else:
  4.     print 'no hay índice 5'

También vale mencionar el uso de comprensión de listas o generadores cuando sea posible (¡y legible!).

Una técnica en particular que me gusta bastante es usar diccionarios para suplantar a la construcción switch, que no existe en Python:

Código Python:
Ver original
  1. operador = 'suma'
  2.  
  3. opciones = {
  4.     'suma': 'elegiste suma',
  5.     'multiplicacion': 'elegiste multiplicacion'
  6.     'division': 'elegiste division',
  7.     'resta': 'elegiste resta'
  8. }
  9.  
  10. print opciones.get(operador, 'mala elección')

El equivalente usando 'switch' sería (en PHP):

Código PHP:
Ver original
  1. $operador = 'suma';
  2.  
  3. switch($operador) {
  4.     case 'suma': echo 'elegiste suma'; break;
  5.     case 'multiplicacion': echo 'elegiste multiplicacion'; break;
  6.     case 'division': echo 'elegiste division'; break;
  7.     case 'resta': echo 'elegiste resta'; break;
  8.     default: echo 'mala elección';
  9. }

Etiquetas: codigofuente, estilos, metodos, reglas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:18.