[pyar] Clases en python

Nahuel Defossé nahuel.defosse en gmail.com
Vie Sep 21 17:42:25 -03 2018


Cristián,
En Python todo es un objeto, desde los tipos de datos básicos como int,
str, float, los tipos de datos tupla, lista y diccionario y asociados,
hasta propiamente las clases con las que ya has trabajado y si escarbas un
poco, las clases también son objetos.

Si venís desde C, quizás lo más simple sea escribir funciones que son
bastante poderosas, hasta que necesites alguna característica que solo te
da crear una clase, como podría ser reutilizar código o implementar un
método mágico (operator override sería lo más parecido a esto en C++). Esto
siempre es dependiente del contexto, si vas a utilizar algún framework o
biblioteca, quizás deberás adherir a su filosofía ya que hay más de una
manera de hacer las cosas y no siempre es obvia [...]. Por ejemplo, en un
framework web muy popular llamado Django, se usan clases para definir la
forma en la que te comunicas con la base de datos y funciones para definir
el código que se ejecuta cuando llega una petición desde un navegador web
(aunque también existe una forma de hacer esto último con clases). En
programación de UIs, mi experiencia es mayoritariamente con Qt,
prácticamente todo son clases, pero eventualmente las funciones son más
cómodas para tareas pequeñas. Para hacer un script de línea de comandos
podes usar click, donde escribís funciones. Por último, una biblioteca para
hacer pruebas automáticas llamada pytest, pondera las funciones y las
capacidades de introspección.

Por último, las funciones sueltas, bien organizadas en paquetes y módulos,
suelen ser suficientes para muchas tareas. No hay que sentirse mal por no
necesitar clases, la gran mayoría de la biblioteca estándar está hecha de
funciones.

Saludos!



El vie., 21 sept. 2018 a las 16:51, Cristian Andrione (<
cristian.andrione en gmail.com>) escribió:

> Hola, en mi trabajo programo en C, lenguaje que conozco aceptablemente y
> conozco también algo de java aunque sólo a nivel teórico. En C no hay
> clases y en java todo debe estar dentro de una clase.
> Hace un tiempo empecé a estudiar python para desarrollar un proyecto
> personal. En python puedo elegir, una función puede ser una función o estar
> dentro de una clase (método). En varias oportunidades se me presenta la
> duda ¿creo una clase o dejo las funciones "sueltas"?.
> Me gustaría saber cómo resuelven estas dudas los programadores con
> experiencia en python. Yo, al venir de C, tiendo a seguir pensando en esos
> términos y me doy cuenta que en realidad estoy traduciendo un programa C a
> python y esa no es la idea porque creo que me estoy perdiendo de una buena
> parte de las habilidades de python.
>
> Saludos y gracias.
>
> --
> Cristian Andrione.
> _______________________________________________
> Lista de Correo de PyAr - Python Argentina - pyar en python.org.ar
> Sitio web: http://www.python.org.ar/
>
> Para administrar la lista (o desuscribirse) entrar a
> http://listas.python.org.ar/listinfo/pyar
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20180921/10b5ec69/attachment.html>


Más información sobre la lista de distribución pyar