[pyar] ¿cómo automatizar el llamado de objetos?

Sebastián Schiavinato seba.schiavinato en gmail.com
Mie Dic 25 21:32:55 -03 2019


Acá hay una muy buena referencia de __repr__ y para qué se usa:
https://stackoverflow.com/questions/1436703/difference-between-str-and-repr
Ahí mismo hace referencia a __str__, que se usa cuando haces str(obj).

Igualmente, lo que preguntaste es parte de la programación orientada a
objetos, donde el problema de "sonar" se lo pasas al objeto que mandaste en
el primer método. Acá seguro tienen algunos libros para estudiar OOP, yo no
tengo ninguno en mente específico para Python. Una busqueda en google puede
servir

Saludos

On Wed, 25 Dec 2019 at 18:10, criss pro <crisspro en hotmail.com> wrote:

> Hola.
>
> Por lo visto ese método __rempr__ es el que convierte el string a
> objeto, que cuando intenté hacer algo así python me arrojaba un error,
> ya que me faltó dicho método. El código que modificaste debuelve lo que
> dices, pero no me queda claro su uso, ya que no está integrado con el
> input, entonces arroja todo los resultados, cuando se supone que depende
> de lo que el usuario ponga en el input. A ver si me podrías explicar
> como funciona el __rempr__ por favor.
>
>
> El 25/12/2019 a las 14:27, Javier Marcon escribió:
>
> > El 24/12/19 a las 16:23, criss pro escribió:
> >> Hola.
> >>
> >>
> >> No se si sea posible automatizar el llamado de objetos desde un método
> >> de otra clase, me explico. En el códigoque dejo más abajo (intenté
> >> simplificarlo lo más que pude), lo que quiero hacer es desde el método
> >> tocar de la clase Persona, llamar al objeto "perro" o "gato" dependiendo
> >> del valor del parámetro "objeto" del propio método "tocar". Como ven,
> >> usé condicionales para esto, funciona, pero tengo la impresión, quizás
> >> errada, que pudiese ahorrar código construyendo un método que llamase
> >> automáticamente al objeto dependiendo del valor "objeto" del método, sin
> >> necesidad de programar una a una las posibilidades.
> >> ...
> > Es asi de facil:
> >
> > class Persona:
> >      def __init__(self, nombre):
> >          self.nombre = nombre
> >
> >      def tocar(self, objeto):
> >          print('tocas el ', objeto)
> >          objeto.sonar()
> >
> >
> > class Animal:
> >      def __init__(self, nombre, sonido):
> >          self.nombre = nombre
> >          self.sonido = sonido
> >
> >      def sonar(self):
> >          print(self.sonido)
> >
> >      def __repr__(self):
> >          return self.nombre
> >
> >
> > antonio = Persona('antonio')
> > gato = Animal('gato', 'miaaauuuu')
> > perro = Animal('perro', 'guau guau')
> > antonio.tocar(gato)
> > antonio.tocar(perro)
> >
> >
> > Lo cual te devuelve:
> >
> > ('tocas el ', gato)
> > miaaauuuu
> > ('tocas el ', perro)
> > guau guau
> >
> > Saludos,
> >
> > Javier.
> >
> _______________________________________________
> 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



-- 
Sebastián Schiavinato
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20191225/d3982b27/attachment-0001.html>


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