Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > Python
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-04-2011
Avatar de D-MO
D-MO D-MO is offline
Miembro
 
Registrado: ago 2005
Ubicación: root@debian:/#
Posts: 1.042
Poder: 20
D-MO Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
¡¡¡Que extraño!!!, ¿no?
Un poco casi, un poco

Cita:
Empezado por Al González Ver Mensaje
Código:
def IndexOf (self, Value):
  if Value in self:
    return self.index (Value)
  else:
    return None
¿Voy bien?
Pues Al, el código es funcional, pero, ¿para que evadir el try?
Responder Con Cita
  #2  
Antiguo 02-04-2011
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 30
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Cita:
Empezado por D-MO Ver Mensaje
Pues Al, el código es funcional, pero, ¿para que evadir el try?
Pues para:

1. Hacer más ágil la ejecución. Dudo mucho que el mecanismo de elevar y atrapar una excepción, en cualquier lenguaje, sea más rápido y ligero que preguntar antes de intentar.

2. Hacer más legible el código. Como lo he puesto me parece queda más claro.

3. Evitar asunciones. Como lo has puesto das por sentado que si se eleva una excepción es porque el elemento no existe en la lista (¿y si sucede por otro motivo?).

Es mi punto de vista al respecto.
Responder Con Cita
  #3  
Antiguo 02-04-2011
Avatar de D-MO
D-MO D-MO is offline
Miembro
 
Registrado: ago 2005
Ubicación: root@debian:/#
Posts: 1.042
Poder: 20
D-MO Va por buen camino
Cita:
Empezado por Al González Ver Mensaje
...Es mi punto de vista al respecto.
Los tres puntos que indicas me parecen aceptables, en la medida de lo posible los iré aplicando. Todos los días se aprende algo nuevo.

Saludos.
Responder Con Cita
  #4  
Antiguo 02-04-2011
Avatar de D-MO
D-MO D-MO is offline
Miembro
 
Registrado: ago 2005
Ubicación: root@debian:/#
Posts: 1.042
Poder: 20
D-MO Va por buen camino
En efecto, tienes la razón en el primer punto, explico:
Teniendo las dos opciones, a y b en los archivos a.py y b.py de la siguiente manera:

a.py
Código:
class myList(list):
    
    def indexOf(self, value):
        try:
            return self.index(value)
        except ValueError:
            return None

x = myList()

print 'A:', x.indexOf('test')
b.py
Código:
class myList(list):
    
    def indexOf(self, value):
        if value in self:
            return self.index(value)
        else:
            return None

x = myList()

print 'B:', x.indexOf('test')
Se obtiene como resultado lo siguiente:

Código:
~/tmp$ time python a.py
A: None

real	0m0.046s
user	0m0.028s
sys	0m0.000s

~/tmp$ time python b.py
B: None

real	0m0.033s
user	0m0.024s
sys	0m0.000s
Gracias por el aporte

Saludos.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Como sabes la IP del cliente con idTCPServer fide_uci Internet 1 13-11-2009 06:40:12
Tutorial de Python 'Python para todos' marcoszorrilla Noticias 11 15-02-2009 05:19:15
Si no sabes leer, éste es tu post... Gabo Humor 4 06-06-2008 00:15:27
20 cosas que no sabes sobre Google marcoszorrilla La Taberna 6 05-06-2008 20:30:35
¿Qué Tanto Sabes De La Vasectomía? gmontes Humor 4 10-12-2005 09:15:05


La franja horaria es GMT +2. Ahora son las 09:19:37.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi