Python 将实例与“eq”进行比较为什么不起作用?
我不明白为什么createDeck函数不起作用Python 将实例与“eq”进行比较为什么不起作用?,python,tkinter,Python,Tkinter,我不明白为什么createDeck函数不起作用 class Card: def __init__(self): self.rank = tk.IntVar() self.rank.set(rm.choice(rank)) self.seed = tk.StringVar() self.seed.set(rm.choice(seeds)) self.point = tk.IntVar() sel
class Card:
def __init__(self):
self.rank = tk.IntVar()
self.rank.set(rm.choice(rank))
self.seed = tk.StringVar()
self.seed.set(rm.choice(seeds))
self.point = tk.IntVar()
self.point.set(self.calculatePoint())
self.value = tk.StringVar()
self.value.set(self.calculateValue())
self.name = tk.StringVar()
self.name.set(self.calculateName())
def __str__(self):
return self.name.get() + ' di ' + self.seed.get()
def __lt__(self, other):
return self.rank.get() < other.rank.get()
def __eq__(self, other):
return self.__dict__ == other.__dict__
def __ne__(self, other):
return self.rank.get() != other.rank.get() and self.seed.get() != other.seed.get()
def __gt__(self, other):
return self.rank.get() > other.rank.get()
class Deck:
def __init__(self):
self.deck= []
self.name = tk.Label(table, text='Deck', bd=3, relief='flat')
self.name.grid(column=0, row=0)
def createDeck(self):
while len(self.deck) < 40:
x = Card()
if x not in self.deck:
deck.append(x)
table.create_text(500,200, text='deck is compose by %d cards' % (len(self.deck)))
您的方法:
def createDeck(self):
while len(self.deck) < 40:
x = Card()
if x not in self.deck:
deck.append(x)
应该会有帮助。实际问题是什么?将实例与“为什么不起作用?”?OP并没有提到他正在获取变量未初始化错误。这似乎是一个问题,我不明白为什么函数“createDeck”不起作用。你也是对的。虽然目前还不清楚OP需要什么,但如果你发布了一篇文章,你会增加修改以得到一个好的答案。什么是不工作?你有错误吗?如果是,错误是什么?
def createDeck(self):
while len(self.deck) < 40:
x = Card()
if x not in self.deck:
self.deck.append(x)