我是一个新手,我有一个非常奇怪的问题(就像在标题中,对我来说)。 代码如下:
from random import shuffle
class Carta:
listaSemi=[" ","Bastoni","Spade","Coppe","Denari"]
listaValori=[" ","Asso","Due","Tre","Quattro",
"Cinque","Sei","Sette","Otto","Nove","Dieci"]
def __init__(self,seme,valore):
self.seme=seme
self.valore=valore
def __str__(self):
s1=self.listaValori[self.valore]
s2=self.listaSemi[self.seme]
return " ".join((s1,"di",s2))
class Mazzo:
def __init__(self):
self.Carte=[]
def Crea(self):
for seme in range(1,5):
for valore in range(1,11):
self.Carte.append(Carta(seme, valore))
def Mescola(self):
shuffle(self.Carte)
当我这样做时:
M=Mazzo
Mazzo.Crea(M)
我得到:
Traceback (most recent call last):
File "<pyshell#62>", line 1, in <module>
Mazzo.Crea(M)
File "/home/administrator/Scrivania/Script/Carte.py", line 19, in Crea
self.Carte.append(Carta(seme, valore))
AttributeError: type object 'Mazzo' has no attribute 'Carte'
提前感谢您的帮助!你知道吗
你没有正确初始化你的类。尝试这样做:
这么快解释一下原因。首先,第一行初始化类型为
Mazzo
的对象,并将其设置为m(请注意,对于所有方法、初始化或其他方法,您都需要使用“()”)。你知道吗接下来我们要调用Crea函数,我们通过调用刚刚创建的对象而不是类本身来实现。你知道吗
您正在将类型指定给M,而不是创建新对象。可能你想这样做:
问题在于如何实例化类Mazzo
真正分配给M的是类对象,而不是Mazzo对象:
你的下一行问题更大:
它要求Mazzo类以Mazzo类对象作为参数执行Crea方法。Crea不接受任何其他参数,更不用说类对象了。我想您可能还有更多关于python中的self方法参数的阅读。你知道吗
实例化给定类的新对象的常用方法如下:
祝你好运。你知道吗
相关问题 更多 >
编程相关推荐