Discussion:
[pyar] Clases en python
Cristian Andrione
2018-09-21 19:51:14 UTC
Permalink
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.
Eduardo Perez
2018-09-21 20:24:46 UTC
Permalink
Hola Cristian,

En si, todo es valido. Pero...

El usar objetos creo es mas conveniente (serian clases), te sugiero
investigues y empieces a utilizar el paradigma OOP (Object Oriented
Programing).
Creo que a medida que le vayas dando cavida a tu forma de analizar y
programar
una problema/necesidad, vas a ver y entender porque es lo que más se usa
hoy día.

Si venis de C, supongo sabras que esta el C++, que seria C mas el uso de
la OOP,
donde tenes el uso de clases, y todo lo relacionado.

En java, tenes algo mas profundo, es decir si no usas OOP no podes
programar.

En python, tenes la posibilidad de hacerlo de las dos formas, pero
trabajar con
OOP es lo que mas rinde a la larga, por sus ventajas, y por
mantenimiento mas sencillo.


Muchos saludos,
Eduardo.
Post by Cristian Andrione
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.
_______________________________________________
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
Nahuel Defossé
2018-09-21 20:42:25 UTC
Permalink
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 (<
Post by Cristian Andrione
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.
_______________________________________________
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
Facundo Batista
2018-09-21 20:54:01 UTC
Permalink
El 21 de septiembre de 2018, 17:42, Nahuel Defossé
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.
Eso! +1
--
. Facundo

Blog: http://www.taniquetil.com.ar/plog/
PyAr: http://www.python.org.ar/
Twitter: @facundobatista
_______________________________________________
Lista de Correo de PyAr - Python Argentina - ***@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:
David Arch
2018-09-21 21:36:09 UTC
Permalink
Es más fácil testear funciones que clases en general también.

El vie., 21 de sep. de 2018 10:54 p. m., Facundo Batista <
El 21 de septiembre de 2018, 17:42, Nahuel Defossé
Post by Nahuel Defossé
Por último, las funciones sueltas, bien organizadas en paquetes y
módulos,
Post by Nahuel Defossé
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.
Eso! +1
--
. Facundo
Blog: http://www.taniquetil.com.ar/plog/
PyAr: http://www.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
Luis Andraschnik
2018-09-22 13:29:21 UTC
Permalink
Hola!

Yo no necesité crear clases hasta ahora aunque sí tuve que entenderlas para
modificar clases creadas por otros y adaptarlas a mis necesidades. Si bien
soy aficionado a la programación y no un programador profesional también
aprendí C antes que python y sigo pensando sin POO pero igusl me las
arreglo.

Muchas bibliotecas de la stdlib y de terceros están escritas como clases ,
uno simplemente las instancia y las usa y no se da cuenta. Creo que quizá
es más importante manejar POO cuando se hacen bibliotecas muy generales
para que use todo el mundo, no obstante a veces se abusa y el código se
hace excesivamente verborrágico y te va a molestar cuando tenés que meterte
con eso.

Te recomiendo esta charla de la PyCon 2012, de Jack Diederich, no para
tomarlo como la verdad absoluta sino para reflexionar si realmente es
necesario crear tantas clases:

Stop Writing Classes


Saludos
Luis
Post by David Arch
Es más fácil testear funciones que clases en general también.
El vie., 21 de sep. de 2018 10:54 p. m., Facundo Batista <
El 21 de septiembre de 2018, 17:42, Nahuel Defossé
Post by Nahuel Defossé
Por último, las funciones sueltas, bien organizadas en paquetes y
módulos,
Post by Nahuel Defossé
suelen ser suficientes para muchas tareas. No hay que sentirse mal por
no
Post by Nahuel Defossé
necesitar clases, la gran mayoría de la biblioteca estándar está hecha
de
Post by Nahuel Defossé
funciones.
Eso! +1
--
. Facundo
Blog: http://www.taniquetil.com.ar/plog/
PyAr: http://www.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
_______________________________________________
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
Cristian Andrione
2018-09-22 20:05:01 UTC
Permalink
Hola: Les agradezco sus respuestas y opiniones.

Saludos.

El sáb., 22 sept. 2018 a las 10:30, Luis Andraschnik (<
Post by Luis Andraschnik
Hola!
Yo no necesité crear clases hasta ahora aunque sí tuve que entenderlas
para modificar clases creadas por otros y adaptarlas a mis necesidades. Si
bien soy aficionado a la programación y no un programador profesional
también aprendí C antes que python y sigo pensando sin POO pero igusl me
las arreglo.
Muchas bibliotecas de la stdlib y de terceros están escritas como clases ,
uno simplemente las instancia y las usa y no se da cuenta. Creo que quizá
es más importante manejar POO cuando se hacen bibliotecas muy generales
para que use todo el mundo, no obstante a veces se abusa y el código se
hace excesivamente verborrágico y te va a molestar cuando tenés que meterte
con eso.
Te recomiendo esta charla de la PyCon 2012, de Jack Diederich, no para
tomarlo como la verdad absoluta sino para reflexionar si realmente es
Stop Writing Classes
http://youtu.be/o9pEzgHorH0
Saludos
Luis
Post by David Arch
Es más fácil testear funciones que clases en general también.
El vie., 21 de sep. de 2018 10:54 p. m., Facundo Batista <
El 21 de septiembre de 2018, 17:42, Nahuel Defossé
Post by Nahuel Defossé
Por último, las funciones sueltas, bien organizadas en paquetes y
módulos,
Post by Nahuel Defossé
suelen ser suficientes para muchas tareas. No hay que sentirse mal por
no
Post by Nahuel Defossé
necesitar clases, la gran mayoría de la biblioteca estándar está hecha
de
Post by Nahuel Defossé
funciones.
Eso! +1
--
. Facundo
Blog: http://www.taniquetil.com.ar/plog/
PyAr: http://www.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
_______________________________________________
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
_______________________________________________
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
--
Cristian Andrione.
Loading...