我目前正在尝试创建一小段代码,这些代码将返回一整套卡片。我试图从 init ()方法中调用createDeck()方法。出于某种原因,出现错误。任何人都可以解释这个问题的解决方案,或者为什么它不起作用?我尝试删除类,只有方法,它完美地工作。
class FullDeck():
'''
Returns a full 52 card deck
'''
names = ('Ace','One','Two','Three','Four','Five','Six','Seven','Eight',
'Nine','Ten','Jack','Queen','King')
suits = ('Hearts','Spades','Clubs','Diamonds')
def __init__(self):
self.deck = createDeck()
def createDeck(self):
currentDeck = []
for it1 in FullDeck.names:
for it2 in FullDeck.suits:
currentDeck.append(it1 + ' of ' + it2)
return currentDeck
答案 0 :(得分:2)
与其他语言不同,Python类没有对自己的隐式引用。如果要在同一对象上调用任何方法,则必须显式使用引用。
self.deck = self.createDeck()
另请注意,由于该方法仅用于在对象上创建属性,因此它应该自己执行该操作。
def __init__(self):
...
self.createDeck()
def createDeck(self):
currentDeck = []
...
self.deck = currentDeck
答案 1 :(得分:0)
正如其中一条评论所示,您需要使用
def __init__(self):
self.deck = self.createdeck()
获得您正在寻找的结果。