Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ClassB=[ClassA,ClassA,ClassA]无法打印ClassB并为其编制索引。python_Python_List_Class - Fatal编程技术网

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

ClassB=[ClassA,ClassA,ClassA]无法打印ClassB并为其编制索引。python,python,list,class,Python,List,Class,我想用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=

我想用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)
编辑:以下是命名为tarjeta和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'],
}

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

您可以尝试使用此
\uuu str\uuu
实现
Mazo

def __str__(self):
    return str([str(k) for k in self.mazo])
编辑:如果希望类支持索引,可以实现方法
\uuu getitem\uu

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

您是如何声明的
paises\u por\u tarjeta
NOMBRE\u tarjeta
?它们来自另一个模块,让我添加它们。请显示使用这些类的代码,显示输出,然后显示您希望得到的输出。我可以使用pastebin向您显示,还是我必须执行帖子中的代码?这解决了打印问题,谢谢,现在我没有得到这个[]*50,而是得到了一个很好的输出,但我仍然无法执行以下操作:c=Mazo(paises_por_tarjeta)打印c[0]TypeError:“Mazo”对象不支持索引我想我现在爱上你了,我整天都在想这个问题,不知道如何解决:(非常感谢!:)veo que sos de peru che。谢谢你!