[pyar] Logica repetida en metodos
Martin Cerdeira
martincerdeira en gmail.com
Jue Dic 2 23:39:16 ART 2010
2010/12/2 Lucas Liendo <mindmaster en gmail.com>:
> Hola ! Queria consultarles por una duda, resulta que tengo que hacer algunos
> metodos los cuales todos tienen la misma logica, salvo en un solo punto, el
> cual es una condicion, para resolverlo se me ocurrio algo asi :
>
> def funcion_dep(cond) :
> if eval(cond) :
> print "truep"
> else :
> print "falsep"
>
> def condicion_1(n1, n2) :
> if n1 > n2 :
> return 1
>
> return 0
>
> def condicion_2(n1, n2) :
> if n1 < n2 :
> return 1
>
> return 0
>
> if __name__ == "__main__" :
> funcion_dep("condicion_1(1, 2)")
> funcion_dep("condicion_2(1, 2)")
>
> es decir evaluo la condicion en otro metodo a traves de eval, lo que queria
> saber es si hay otra alternativa al eval (ya que estoy disconforme con esta
> solucion). Bueno eso es todo !
>
Una es:
def condicion_1(n1, n2) :
if n1 > n2 :
return 1
return 0
def condicion_2(n1, n2) :
if n1 < n2 :
return 1
return 0
if __name__ == "__main__" :
f1 = condicion_1
f1(1, 2)
f1 = condicion_2
f1(1, 2)
O, directamente sin la definición de las funciones:
if __name__ == "__main__" :
f1 = (lambda n1, n2: int(n1 > n2))
f1(1, 2)
f1 = (lambda n1, n2: int(n1 < n2))
f1(1, 2)
Uso lambda y, hago un int de la evaluación n1>n2 o n1<n2, lo que da 0
si es False y 1 si es True.
Saludos
-------------------------------------
Martín Cerdeira - Software Developer
[web] http://www.codmacs.blogspot.com/
() ascii ribbon campaign
/\ www.asciiribbon.org
More information about the pyar
mailing list