Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: winnipu en 4 Enero 2017, 15:17 pm



Título: acceder a array de objetos
Publicado por: winnipu en 4 Enero 2017, 15:17 pm
Hola, estoy intentando crear una baraja española en python y que me la muestre en pantalla. He creado dos clases para ello. Cuando intento mostrar el array de cartas que almacena objetos de tipo carta me muestra por pantalla las direcciones de memoria de dichos objetos, pero no los objetos en si. No se que estoy haciendo mal, os pego codigo:

Código:
class Carta:
  def __init__(self,palo,valor):
    self.palo=palo
    self.valor=valor
  def mostrarCarta(self):
    print(str(self.palo) + str(self.valor))
   
class Mazo:
  cartas=[]
  triunfo=["Oros","Copas","Espadas","Bastos"]
  valor=["As","Dos","Tres","Cuatro","Cinco","Seis","Siete","Sota","Caballo","Rey"]
  for i in triunfo:
    for j in valor:
      cartas.append(Carta(i,j))
     
  for carta in cartas:
    print(carta)
   
Mazo()


Título: Re: acceder a array de objetos
Publicado por: winnipu en 4 Enero 2017, 17:19 pm
Me autorespondo, cuando imprimo en la ultima linea de codigo, estoy imprimiendo la referencia al objeto. Para imprimir el objeto debo usar la funcion mostrarCarta():

for carta in cartas:
    carta.MostrarCarta()