[Python-es] pregunta sobre OOP: ?donde poner un metodo list()?

Marc Garcia garcia.marc en gmail.com
Mar Mayo 9 17:06:22 EDT 2017


Para hacer algo así deberías usar SQL alchemy, y no reinventar la rueda.

Contestando concretamente a tu pregunta, lo mejor que puedes hacer es
implementarlo igual que el ORM de Django, creo que es dificil que
encuentres una manera mejor:
https://docs.djangoproject.com/en/1.11/topics/db/

Para iterar sobre los elementos deberás implementar el magic method
__iter___ en el manager, como un generador que vaya devolviendo los
elementos.

On May 9, 2017 21:55, "Jose Caballero" <jcaballero.hep en gmail.com> wrote:

> Pirmero, perdon por la ausencia de tildes.
>
>
>
> Imaginemos un caso cualquiera donde el programa tiene que crear,
> modificar, eliminar y listar "cosas", en algun tipo de registro (una
> BBDD, ficheros, servicio web, etc.)
> Las podemos llamar Item.
>
> Imagino que necesitaria una clase Item con los metodos para crear,
> eliminar y modificar:
>
> class Item:
>     def __init__(self):
>         ...
>
>     def create(self):
>         ...
>
>     def remove(self):
>         ...
>
>     def update(self, data):
>         ...
>
>
> Mi duda es donde habria que tener un metodo list().
> ?En una clase diferente, tipo ItemsManager o algo parecido?
>
> Asumiendo que la respuesta es que si...
> ?Que pasa si tengo 2 o mas objetos que gestionar: Item1, Item2, ..., ItemN?
> ?Necesitaria sendas clases Item*Manager?
> ?O todo en una sola, como sigue?
>
> class ItemsManager:
>     def listitems1(self):
>         ...
>
>     def listitems2(self):
>         ...
>
>     def listitemsN(self):
>         ...
>
> ?Que me recomiendan?
> Cualquier sugerencia de alguien con experiencia en OOP sera mas que
> bienvenida.
> Y links con ejemplos de buenas practicas para este tipo de problemas, mas
> aun :)
>
> Gracias,
> Jose
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> https://mail.python.org/mailman/listinfo/python-es
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20170509/41b301b1/attachment.html>


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