[pyar] xDuda con como acceder a un método de un objeto dentro de una lista

XLJ xlj xlj707 en gmail.com
Mar Mar 8 17:24:24 ART 2016


# en este modulo tendre la estanteria de libros (listas)
from libro import Libro

# titulo, anio, autor, paginas, editorial, codigoLibro



# llenado de la estanteria
lib1 = Libro("Alicia en el pais de las maravillas", 1999, "lucson marz", 200, "MCgraw Hill", "AHSBCr31")
lib2 = Libro("Peter Pan", 1985, "J. M. Barrie", 206, "A Millennium Fulcrum Edition", "HALSDF232")
lib3 = Libro("Oliver tweest", 1855, "Charles Dikenson", 120, "Porrua", "ASDFAS235")
lib4 = Libro("La Odisea", 1530, "Homero", 950, "Porrua", "ASDFASDF323")
lib5 = Libro("La iliada ", 1532, "Homero", 1300, "Porrua", "ADSFASD9032")
lib6 = Libro("La hojarasca", 1960, "Gabriel Garcia Marquez", 180, "Editorial Latina", "ADF3235ASD")

libros = [lib1, lib2, lib3, lib4, lib5, lib6]  # 6 libros


# test de vaciado de la lista
def listar():
    for object in libros:
    	print(object)




listar()

MacBook-Pro-de-X:clases xlj707$ python3 estanteriaMaterial.py 
<libro.Libro object at 0x10133a4a8>
<libro.Libro object at 0x10133a4e0>
<libro.Libro object at 0x10133a518>
<libro.Libro object at 0x10133a588>
<libro.Libro object at 0x10133a860>
<libro.Libro object at 0x10133a8d0>


 Y USANDO EL CODIGO ASI : 

# en este modulo tendre la estanteria de libros (listas)
from libro import Libro

# titulo, anio, autor, paginas, editorial, codigoLibro



# llenado de la estanteria
lib1 = Libro("Alicia en el pais de las maravillas", 1999, "lucson marz", 200, "MCgraw Hill", "AHSBCr31")
lib2 = Libro("Peter Pan", 1985, "J. M. Barrie", 206, "A Millennium Fulcrum Edition", "HALSDF232")
lib3 = Libro("Oliver tweest", 1855, "Charles Dikenson", 120, "Porrua", "ASDFAS235")
lib4 = Libro("La Odisea", 1530, "Homero", 950, "Porrua", "ASDFASDF323")
lib5 = Libro("La iliada ", 1532, "Homero", 1300, "Porrua", "ADSFASD9032")
lib6 = Libro("La hojarasca", 1960, "Gabriel Garcia Marquez", 180, "Editorial Latina", "ADF3235ASD")

libros = [lib1, lib2, lib3, lib4, lib5, lib6]  # 6 libros


# test de vaciado de la lista
def listar():
    for object in libros:
    	print(object.showInfo())




listar()

MacBook-Pro-de-X:clases xlj707$ python3 estanteriaMaterial.py 
Traceback (most recent call last):
  File "estanteriaMaterial.py", line 27, in <module>
    listar()
  File "estanteriaMaterial.py", line 22, in listar
    print(object.showInfo())
  File "/Users/xlj707/Documents/Misproyectitos-python/ArchivoJson/clases/libro.py", line 14, in showInfo
    print("titulo: ", self.__titulo)
AttributeError: 'Libro' object has no attribute '_Libro__titulo'
MacBook-Pro-de-X:clases xlj707$ 



> On Mar 8, 2016, at 2:15 PM, Tomas Zulberti <tzulberti en gmail.com> wrote:
> 
> 
> 
> 2016-03-08 17:05 GMT-03:00 XLJ xlj <xlj707 en gmail.com <mailto:xlj707 en gmail.com>>:
> #clase libro 
> 
> from ejemplar import Ejemplar 
> 
> class Libro(Ejemplar): 
>    def __init__(self, titulo, anio, autor, paginas, editorial, codigoLibro): 
>       Ejemplar.__init__(self, titulo, anio, autor, paginas, editorial) #super
>       self.__codigolibro = codigoLibro #atributo adicional propio de esta clase 
> 
>    def getCodigoLibro(): 
>       return self.__codigolibro
> 
>    def showInfo(self):
>       print("titulo: ", self.__titulo)
>       print("anio: ", self.__anio)
>       print("autor: ", self.__autor)
>       print("paginas: ", self.__paginas)
>       print("editorial: ", self.__editorial)
>       print("codigo de libro: ", self.__codigolibro)
> 
> 
> 
> # en este modulo tendre la estanteria de libros (listas)
> from libro import Libro
> 
> # titulo, anio, autor, paginas, editorial, codigoLibro
> 
> 
> 
> # llenado de la estanteria
> lib1 = Libro("Alicia en el pais de las maravillas", 1999, "lucson marz", 200, "MCgraw Hill", "AHSBCr31")
> lib2 = Libro("Peter Pan", 1985, "J. M. Barrie", 206, "A Millennium Fulcrum Edition", "HALSDF232")
> lib3 = Libro("Oliver tweest", 1855, "Charles Dikenson", 120, "Porrua", "ASDFAS235")
> lib4 = Libro("La Odisea", 1530, "Homero", 950, "Porrua", "ASDFASDF323")
> lib5 = Libro("La iliada ", 1532, "Homero", 1300, "Porrua", "ADSFASD9032")
> lib6 = Libro("La hojarasca", 1960, "Gabriel Garcia Marquez", 180, "Editorial Latina", "ADF3235ASD")
> 
> libros = [lib1, lib2, lib3, lib4, lib5, lib6]  # 6 libros
> 
> 
> # test de vaciado de la lista
> def listar():
>     for object in libros:
> 
> 
> 
> 
> 
> listar()
> 
> MI DUDA ES LA SIGUIENTE como puedo hacer uso del método showInfor() que es el encargado de listar todas las propiedades del objeto tipo Libro, esto dentro de mi ciclo for 
> ya intente con def listar(): 
> 	for object in libros 
> 		print(object.showInfo()) 
> sin embargo esto me da error !! 
> 
> 
> 
> Estaria bueno que pongas el mensaje de error que te aparece. 
> Por ejemplo, tu codigo corre en Python 3. 
> 
> Sin embargo, lo que queres hacer es lo siguiente:
> 
> for object in libros:
>     object.showInfo()
> 
> No es necesario hacer un print de object.showInfo(), porque el mismo ya lo imprime
> 
>  
> 
> quiero saber como puedo lograr esto aquí en python ya que en java es totalmente posible (haciendo uso del metodo toString) 
> 
> 
> En python existe un magic method llamado __str__ (http://www.rafekettler.com/magicmethods.html#representations <http://www.rafekettler.com/magicmethods.html#representations>)
> 
>  
> de antemano gracias!! espero que alguien me pueda orientar 
> 
> _______________________________________________
> pyar mailing list pyar en python.org.ar <mailto:pyar en python.org.ar>
> http://listas.python.org.ar/listinfo/pyar <http://listas.python.org.ar/listinfo/pyar>
> 
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/ <http://www.python.org.ar/>
> 
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de Argentina - http://www.usla.org.ar <http://www.usla.org.ar/>
> 
> _______________________________________________
> pyar mailing list pyar en python.org.ar <mailto:pyar en python.org.ar>
> http://listas.python.org.ar/listinfo/pyar <http://listas.python.org.ar/listinfo/pyar>
> 
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/ <http://www.python.org.ar/>
> 
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de Argentina - http://www.usla.org.ar <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/20160308/71169229/attachment-0001.html>


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