[Python-es] pregunta casi filosófica: ¿es mejor usar tipos básicos o mejor clases dedicadas?

s_48k s_48k en yahoo.com
Sab Nov 24 22:16:47 CET 2012


Depende de las necesidades y de la funcionalidad que necesites. Si te vale solo con el list, no hay necesidad de crear una clase, si tienes otras informaciones relacionadas con la lista, funcionalidades específicas a la propia lista, etc... Puede ser una buena solución. Pero vamos, dependiendo de las especificaciones de cada caso habrá una solución diferente.

Saludos.

-----Mensaje original-----
De: Jose Caballero
Enviado: 24/11/2012 20:02
Para: La lista de python en castellano
Asunto: [Python-es] pregunta casi filosófica: ¿es mejor usar tipos básicos o mejor clases dedicadas?

Hola,






es una pregunta medio técnica, medio filosófica. 

Al menos desde el punto de vista de lo que se viene en llamar un "intruso", como es mi caso. 

Alguien que trabaja como desarrollador sin ser informático de educación universitaria.
 



Imaginemos un pseudo-código sencillo como éste:




--------------------------------------------------------------------------------

def foo():

    out = []
 
    for blah in blah:

        out.append( ... )

     return out




info = foo()

if info:   # o equivalentemente   if len(info)==0

    print "foo() devuelve una lista de valores"
 

--------------------------------------------------------------------------------







Funcionar, funciona. 

Lo que me pregunto es si sería, desde el punto de vista del desarrollo de software, más apropiado trabajar con una clase dedicada en lugar de con el tipo básico 'list'. Algo como...
 




--------------------------------------------------------------------------------

class MyInfoList:   # si eso, se puede hacer MyInfoList(list)

    def __init__(self):
 
        self.infolist = []

    def __nonzero__(self):

        return len(self.infolist) != 0




def foo():

     out = MyInfoList()

     for blah in blah:
 
         out.infolist.append(...)

     return out


--------------------------------------------------------------------------------







Desde el punto de vista de la ingenería de sw, ¿qué sería mejor? 
 
¿Introduce la segunda forma alguna ventaja, o simplemente una complicación innecesaria?

¿Cuál de las dos formas es más aconsejable para un proyecto mediano (2 o 3 años de trabajo, un orden de magnitud de 100.000 líneas de código, más de un desarrollador)?
 









Referencias a literatura sobre el asunto serán más que bienvenidas.

Saludos cordiales,

Jose
 
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20121124/a0a679de/attachment.html>


Más información sobre la lista de distribución Python-es