Python - 从类内部调用类中的方法

时间:2013-12-18 04:43:18

标签: python

我目前正在尝试创建一小段代码,这些代码将返回一整套卡片。我试图从 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

2 个答案:

答案 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()

获得您正在寻找的结果。