[pyar] almacenar objetos

fisa fisadev en gmail.com
Vie Mayo 10 11:49:50 ART 2013


El día 10 de mayo de 2013 11:34, Miguel Barraza
<correo en miguelbarraza.com.ar> escribió:
> buenas grupo!, sigo aqui aprendiendo python y probando. ando creando un
> jueguito para ver los problemas que surgen, para aprender mas de este
> lenguaje.
>
> y llegué a un tema que no encuentro datos en google:
> comento rapidamente, estoy programando una aventura conversacional (juego
> por medio de narración por escrito).
> estaba trabajando en la parte del inventario (los objetos que lleva el
> personaje) y estaba pensando almacenar esos objetos en un diccionario.
>
> ejemplo: manzana, naranja, espada.
>
> mi consulta surge: se puede acceder a los métodos de los objetos
> almacenados, como puedo hacer eso?.
>
> ejemplo hago:
> inventario[manzana] y cargo el objeto aquí
>
> y luego si hago: inventario[manzana].comer
> o: inventario[espada].comer
>
> no me está llamando al método "comer" del objeto almacenado en esa clave.
> en los anteriores casos me tendría que responder con un mensaje:
>
> inventario[manzana].comer: te comiste la manzana
> inventario[espada].comer: no puedes comer eso!
>
> si lo llamo con diferentes variables si funciona, pero si cargo todo en un
> diccionario algo está fallando. ahi otro método para hacer esto?
> estoy intentando utilizar diccionario así queda cargado en memoria los
> elementos utilizados y no estar consultando la base de datos por cada
> elemento.
> imagino que mi error es porque al pasar de esa forma el método está
> intentando llamar al método del diccionario y no al del objeto contenido en
> esa variable, pero no se, quizas mi lógica faye y tenga que utilizar otra
> forma, por eso consulto.
> gracias.
>
> atte, Miguel

Podés mostrar un poquito del código de cómo estás haciendo eso? Porque
la idea que decís que querés hacer, funciona tranquilamente.
Por ejemplo:

class Persona:
    def saludar(self):
        print 'hola mundo!'

fisa = Persona()

un_dict = {}
un_dict['yo'] = fisa
un_dict['yo'].saludar()
>>> hola mundo!


--
fisa  -  Juan Pedro Fisanotti



More information about the pyar mailing list