FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Cita:
Ya descargué e instalé un acceso directo al PDF. Leyendo algunos párrafos se me hizo algo tarde para comer, pero ha valido la pena. Me uno a la inquietud de Roberto sobre qué IDE sería el recomendable. Eché un vistazo a las pantallas del mencionado por Román, y también me gustó. ¿Más sugerencias sobre IDEs? Quisiera descargar uno y empezar a probar los ejemplos este fin de semana. Agrego: De lo que he leído, no me ha gustado que el método index de las listas eleve una excepción en lugar de devolver -1 o algo por el estilo. ¿Se puede crear una clase derivada de lista para añadirle un método "IndexOf" más amable? Y, derivado de esto, otra pregunta: ¿todos los métodos de Python son redefinibles, es decir, como los métodos virtuales de Delphi? Última edición por Al González fecha: 01-04-2011 a las 23:30:22. |
#2
|
||||
|
||||
Cita:
Un ejemplo de ello sería algo como: Código:
class myList(list): def indexOf(self, value): try: return self.index(value) except ValueError: return -1 a = myList() print a.indexOf('xxx') Saludos. Edito: Acá el como probarlo con ambos casos, exista o no el elemento en la lista Código:
a = myList() b = myList() b.append('xxx') print a.indexOf('xxx') print b.indexOf('xxx') Última edición por D-MO fecha: 02-04-2011 a las 00:02:43. Razón: Extendiendo las pruebas |
#3
|
||||
|
||||
Gracias D-MO, sin duda será interesante ver cómo se redefine (para lo que en Delphi se usa "Override") un método.
|
#4
|
||||
|
||||
Cita:
Por cierto, cuando escribí el post de arriba estaba por salir de la oficina y en mi afán de responder a tu pregunta olvidé que sería un error devolver -1 como posición en una lista en Python, puesto que el -1 es utilizado para hacer referencia a los elementos en la lista en orden inverso, así -1 es el último, -2 el penúltimo, etc... Lo correcto sería devolver None para indicar la ausencia del elemento en la lista. Así, si tenemos: Código:
x = ['a','b','c'] Código:
print x[-1] Código:
c Código:
class myList(list): def indexOf(self, value): try: return self.index(value) except ValueError: return None |
#5
|
||||
|
||||
¡¡¡Que extraño!!!, ¿no?
|
#6
|
||||
|
||||
Para los que estamos acostumbrados a la carcelaria libertad de las llaves o del begin y end, sí.
|
#7
|
||||
|
||||
Cita:
Código:
def IndexOf (self, Value): if Value in self: return self.index (Value) else: return None Interesante también lo referente a uso de self: http://es.wikipedia.org/wiki/Python#Clases |
#8
|
||||
|
||||
Un poco casi, un poco
Pues Al, el código es funcional, pero, ¿para que evadir el try? |
#9
|
||||
|
||||
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. |
#10
|
||||
|
||||
Cita:
// Saludos |
#11
|
||||
|
||||
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino - |
|
|
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 |
|