gpt4 book ai didi

python - ClassB=[ClassA,ClassA,ClassA] 无法打印 ClassB 并为其编制索引。 Python

转载 作者:行者123 更新时间:2023-11-28 17:41:03 26 4
gpt4 key购买 nike

我想用 tarjeta 制作一副牌,但我似乎无法打印它,也无法使用索引。 Tarjeta 类有效,但是当我将它附加到 Mazo 并打印它时,它给了我同样的东西,就好像我没有 str 东西一样。paises_por_tarjeta 是一个{}

class Tarjeta(object):      #this is ClassA
"""Implementacion de una tarjeta de pais."""
def __init__(self, pais=None, tipo=0):
"""Constructor desde pais y tipo."""
self.pais = pais
self.tipo = tipo

def __str__(self):
"""Representacion grafica."""
return "(%s,%s)"%(self.pais, NOMBRE_TARJETAS[self.tipo])

class Mazo(object): #ClassB
"""Implementacion del mazo de tarjetas de pais."""
def __init__(self, paises_por_tarjeta): #paises_por_tarjeta is a {} that has the suit as key and countries as value
"""Creacion desde un diccionario de paises segun tipo.
Debe inicializar el mazo con todas las tarjetas mezcladas."""
self.mazo=[]
for i in range(0,4):
for x in paises_por_tarjeta[i]:
self.mazo.append(Tarjeta(x,i))
max_cartas=len(self.mazo)
for k in range(max_cartas): #mezcla el mazo
j=random.randrange(k,max_cartas)
self.mazo[k],self.mazo[j]=self.mazo[j],self.mazo[k]


def __str__(self):
return str(self.mazo)

编辑:这里是 NOMBRE_TARJETAS 和 paises_por_tarjeta:

     TARJETA_COMODIN = 0
TARJETA_GALEON = 1
TARJETA_GLOBO = 2
TARJETA_CANON = 3
NOMBRE_TARJETAS = {
TARJETA_COMODIN: 'comodin',
TARJETA_GALEON: 'galeon',
TARJETA_GLOBO: 'globo',
TARJETA_CANON: 'canon',
}

paises_por_tarjeta = {
TARJETA_COMODIN: ['Argentina', 'Taimir'],
TARJETA_GALEON: ['Alaska', 'Alemania', 'Borneo', 'Brasil', 'China', 'Gran Bretana', 'Groenlandia', 'Islandia', 'Israel', 'Madagascar', 'Mongolia', 'Nueva York', 'Peru', 'Siberia', 'Suecia', 'Turquia', 'Zaire'],
TARJETA_GLOBO: ['Chile', 'Colombia', 'Egipto', 'Espana', 'Etiopia', 'Francia', 'Gobi', 'India', 'Iran', 'Italia', 'Kamchatka', 'Rusia', 'Sumatra', 'Uruguay', 'Yukon'],
TARJETA_CANON: ['Arabia', 'Aral', 'Australia', 'California', 'Canada', 'Japon', 'Java', 'Labrador', 'Malasia', 'Mexico', 'Oregon', 'Polonia', 'Sahara', 'Sudafrica', 'Tartaria', 'Terranova'],
}

任何帮助将不胜感激,谢谢!

最佳答案

您可以尝试为 Mazo 使用此 __str__ 实现:

def __str__(self):
return str([str(k) for k in self.mazo])

编辑:如果你想让你的类支持索引,你可以实现方法__getitem__:

def __getitem__(self, index):
return self.mazo[index]

关于python - ClassB=[ClassA,ClassA,ClassA] 无法打印 ClassB 并为其编制索引。 Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24226329/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com