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

Gustavo Campanelli gedece en gmail.com
Jue Dic 26 08:38:52 -03 2019


On Wed, Dec 25, 2019 at 9:33 PM Sebastián Schiavinato <
seba.schiavinato en gmail.com> wrote:

> 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
> _______________________________________________
> 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


Lo primero que me llamó la atención del caso es que tanto perro como gato
tienen el mismo método. Casi casi como si lo heredaran de la misma clase
animal, pero lo implementaran distinto.

Gedece
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20191226/2e65f80e/attachment.html>


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