[pyar] ¿cómo automatizar el llamado de objetos?
criss pro
crisspro en hotmail.com
Mar Dic 24 16:23:38 -03 2019
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)
Más información sobre la lista de distribución pyar