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

Javier Marcon javiermarcon en gmail.com
Mie Dic 25 14:27:55 -03 2019


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.

-- 
Eco red Natural.
Venta de productos orgánicos, agroecológicos y BPA.
156-424-0748
ecorednatural en gmail.com



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