Foros del Web » Programando para Internet » Python »

¿Como escribir argumentos separados por salto de línea?

Estas en el tema de ¿Como escribir argumentos separados por salto de línea? en el foro de Python en Foros del Web. ¿Existe alguna guía de estilos sobre como escribir funciones con argumentos separados por un salto de línea? Ya que a veces son tantos que me ...
  #1 (permalink)  
Antiguo 23/05/2014, 10:14
Avatar de cristian_cena
Colaborador
 
Fecha de Ingreso: junio-2009
Mensajes: 2.244
Antigüedad: 14 años, 10 meses
Puntos: 269
¿Como escribir argumentos separados por salto de línea?

¿Existe alguna guía de estilos sobre como escribir funciones con argumentos separados por un salto de línea?

Ya que a veces son tantos que me queda más cómodo listarlos uno debajo del otro por ejemplo:

Código Python:
Ver original
  1. def mifuncion (
  2.         a,
  3.         b,
  4.         c,
  5.         d,
  6.         e
  7.         ):
  8.         return a+b+c+d+e

Gracias!
  #2 (permalink)  
Antiguo 23/05/2014, 12:15
Avatar de Carlangueitor
Moderador ლ(ಠ益ಠლ)
 
Fecha de Ingreso: marzo-2008
Ubicación: México
Mensajes: 10.037
Antigüedad: 16 años, 1 mes
Puntos: 1329
Respuesta: ¿Como escribir argumentos separados por salto de línea?

Si tienes una función con demasiados parámetros, probablemente estés haciendo algo mal, es un code smell típico: Too Many parameters. Una cita del libro Clean Code:

Cita:
The ideal number of arguments for a function is zero (niladic). Next comes one (monadic), followed closely by two (dyadic). Three arguments (triadic) should be avoided where possible. More than three (polyadic) requires very special justification -- and then shouldn't be used anyway.
Claro que hay excepciones, y deberías tener una buena justificación para eso. Pero hay varias formas de tomar esto:

Por ejemplo, una manera sería con *args y **kwargs: http://agiliq.com/blog/2012/06/under...gs-and-kwargs/ y http://www.juanjoconti.com.ar/2010/1...rgs-en-python/

Si de todas formas, quieres tener todos tus parametros hazlo así: http://legacy.python.org/dev/peps/pep-0008/#indentation

Saludos
__________________
Grupo Telegram Docker en Español
  #3 (permalink)  
Antiguo 24/05/2014, 01:08
Principe_Azul
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: ¿Como escribir argumentos separados por salto de línea?

Otra buena forma es usar este código que hice de ejemplo:

Código Python:
Ver original
  1. a = 10
  2. b = 20
  3. c = 30
  4. d = 40
  5. e = 50
  6. f = 60
  7. g = 70
  8.  
  9. Parametros = a,b,c,d,e,f,g
  10.  
  11. def Mi_Funcion(Parametros):
  12.     print Parametros # Muestra una tupla con los valores (10, 20, 30, 40, 50, 60, 70)
  13.     print Parametros[0] # Muestra el primer valor de la tupla = 10
  14.     print Parametros[1] # Muestra el segundo valor = 20
  15.     print Parametros[2] # Muestra el tercer valor = 30
  16.     print Parametros[3] # Muestra el cuarto valor = 40
  17.     print Parametros[4] # Muestra el quinto valor = 50
  18.     print Parametros[5] # Muestra el sexto valor = 60
  19.     print Parametros[6] # Muestra el séptimo valor = 70
  20.  
  21.  
  22. Mi_Funcion(Parametros)
  23.  
  24. raw_input()

Buena suerte!!
  #4 (permalink)  
Antiguo 24/05/2014, 08:13
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: ¿Como escribir argumentos separados por salto de línea?

http://www.amazon.com/dp/0132350882/...ackoverfl08-20

Estimado @Carlangueitor: Ud tendra copia del libro que cita ?
__________________
Salu2!
  #5 (permalink)  
Antiguo 25/05/2014, 14:02
Avatar de cristian_cena
Colaborador
 
Fecha de Ingreso: junio-2009
Mensajes: 2.244
Antigüedad: 14 años, 10 meses
Puntos: 269
Respuesta: ¿Como escribir argumentos separados por salto de línea?

Muchas gracias a todos por sus respuestas. Muy buenos links carlangueitor
  #6 (permalink)  
Antiguo 26/05/2014, 08:43
Avatar de Carlangueitor
Moderador ლ(ಠ益ಠლ)
 
Fecha de Ingreso: marzo-2008
Ubicación: México
Mensajes: 10.037
Antigüedad: 16 años, 1 mes
Puntos: 1329
Respuesta: ¿Como escribir argumentos separados por salto de línea?

Cita:
Iniciado por Principe_Azul Ver Mensaje
Otra buena forma es usar este código que hice de ejemplo:

Código Python:
Ver original
  1. a = 10
  2. b = 20
  3. c = 30
  4. d = 40
  5. e = 50
  6. f = 60
  7. g = 70
  8.  
  9. Parametros = a,b,c,d,e,f,g
  10.  
  11. def Mi_Funcion(Parametros):
  12.     print Parametros # Muestra una tupla con los valores (10, 20, 30, 40, 50, 60, 70)
  13.     print Parametros[0] # Muestra el primer valor de la tupla = 10
  14.     print Parametros[1] # Muestra el segundo valor = 20
  15.     print Parametros[2] # Muestra el tercer valor = 30
  16.     print Parametros[3] # Muestra el cuarto valor = 40
  17.     print Parametros[4] # Muestra el quinto valor = 50
  18.     print Parametros[5] # Muestra el sexto valor = 60
  19.     print Parametros[6] # Muestra el séptimo valor = 70
  20.  
  21.  
  22. Mi_Funcion(Parametros)
  23.  
  24. raw_input()

Buena suerte!!
Revisa los *args y **kwargs, hace eso de manera correcta, eso que haces es pasarle una tupla como parámetro.

Cita:
Iniciado por Italico76 Ver Mensaje
http://www.amazon.com/dp/0132350882/...ackoverfl08-20

Estimado @Carlangueitor: Ud tendra copia del libro que cita ?
Si, pero es mi copia En el foro no apoyamos la piratería.

Saludos
__________________
Grupo Telegram Docker en Español
  #7 (permalink)  
Antiguo 27/05/2014, 10:16
Principe_Azul
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: ¿Como escribir argumentos separados por salto de línea?

@Carlangueitor:

Lo pude hacer de esta manera:

Código Python:
Ver original
  1. def varios(param1, param2, *otros):
  2.     print param1
  3.     print param2
  4.     for valor in otros:
  5.         print valor
  6.  
  7. varios(a,b,c,d,e,f,g)

No sé otra forma que queden los valores sin que se pasen como una tupla o diccionario, porque cuando imprimo param1 solo me sale el número 1, porque cláro es el primero parámetro, pero lo demás creo que hay que usar un for para saber los siguientes valores.

Etiquetas: funciones
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 08:03.