[pyar] almacenar objetos

Luis I. Facciolo lifacciolo en gmail.com
Vie Mayo 10 11:48:50 ART 2013


Mas o menos a grandes rasgos, a ver si esto te da una mano con lo que
preguntas:

class Objeto():
    def __init__(self, nombre, es_comida):
        self.__nombre = nombre
        self.__es_comida = es_comida

    def comer(self):
        if self.__es_comida:
            print "Te comiste una %s" % (self.__nombre)
        else:
            print "No puedes comer esto"


if __name__ == "__main__":
    objetos = {}
    objetos['manzana'] = Objeto(nombre="Manzana", es_comida=True)
    objetos['espada'] = Objeto(nombre="Espada", es_comida=False)

    objetos['manzana'].comer()
    objetos['espada'].comer()


Output del script:
Te comiste una Manzana
No puedes comer esto



Saludos!


El 10 de mayo de 2013 11:39, Juan Carlos Ojeda
<juancarlospaco en gmail.com>escribió:

> 2013/5/10 Miguel Barraza <correo en miguelbarraza.com.ar>
>
>> 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.
>>
>
>
> ZopeDB es una DB que guarda objetos python crudos,  ...sino mas liviano
> pickle,   ...sino no entendi la consulta  :(
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> 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/20130510/4f3bde6a/attachment.html>


More information about the pyar mailing list