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

Brian Rodriguez brianx340 en gmail.com
Jue Dic 26 10:53:28 -03 2019


Hola Cris, eh copiado el codigo que te facilito Javier Marcon y le eh
añadido el input.

_________________________________

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')
opcion = input("""Que animal desea tocar?
1) Gato
2) Perro
---> """
if opcion == "1":
       antonio.tocar(gato)
elif opcion =="2":
        antonio.tocar(perro)
else:
       print("Opción no válida")
_________________________________

Espero haber sido de ayuda ✌🏽

El mié., 25 dic. 2019 13:58, criss pro <crisspro en hotmail.com> 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.
>
>
> class Persona:
>      def __init__ (self, nombre):
>          self.nombre= nombre
>
>      def tocar (self, objeto):
>          print('tocas el ', objeto)
>          if objeto== 'gato':
>              gato.sonar()
>          elif objeto=='perro':
>              perro.sonar()
>
> class Animal:
>      def __init__ (self, nombre, sonido):
>          self.nombre= nombre
>          self.sonido= sonido
>
>      def sonar (self):
>          print(self.sonido)
>
> antonio= Persona('antonio')
> gato= Animal('gato','miaaauuuu')
> perro= Animal('perro','guau guau')
>
> entrada= input('toca un animal')
> if entrada== 'gato':
>      antonio.tocar(entrada)
> elif entrada=='perro':
>      antonio.tocar(entrada)
>
> _______________________________________________
> 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/20191226/81bfca9b/attachment.html>


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