2016-03-21 63 views
0

我在udemy.com和我的OOP类上学了几周的python,导师要求我们创建一个Blackjack游戏。我的第一个任务是为甲板创建一个类。和我做了这一点:python中的二十一点游戏

class Deck(object): 
    totalCards = 0 
    deck = [ 
     ["A", totalCards], 
     ["2", totalCards], 
     ["3", totalCards], 
     ["4", totalCards], 
     ["5", totalCards], 
     ["6", totalCards], 
     ["7", totalCards], 
     ["8", totalCards], 
     ["9", totalCards], 
     ["10", totalCards], 
     ["J", totalCards], 
     ["Q", totalCards], 
     ["K", totalCards], 
    ] 

    def __init__(self, numberOfDecks): 
     self.numberOfDecks = numberOfDecks 
     Deck.totalCards = numberOfDecks * 4 

    def printDeck(): 
     for i in Deck.deck: 
      print i 

newDeck = Deck(6) 
newDeck.printDeck() 

的事情是什么?当我尝试打印在甲板上,我得到和错误,告诉我,该方法printDeck没有参数,我路过一人。我不知道为什么..任何人都可以帮助我?

  • 的Python 2.7.11
  • 我使用的是Windows 10
  • CMD
  • 崇高的文本3
+5

它将对象隐式传递给方法,将方法的声明更改为'def printDeck(self):'。 – Maroun

+0

另外,可能你应该在'self.totalCards = numberOfDecks * 4'和'for self indeck:'而不是'Deck.totalCards = numberOfDecks * 4'和'为Deck.deck:'中做'self.totalCards = numberOfDecks * 4'。在第一种情况下,您正在修改实例的deck/totalCards。第二个修改班级的deck/totalCards。这会影响你,如果你想有多个Deck实例 –

+0

相关问题:“[为什么你需要显式地将”self“参数引入Python方法?](https://stackoverflow.com/questions/68282/why-做任您需要,明确具备的,在自一个参数 - -A-python的方法)”。 –

回答

2

self - 也就是说,对象 - 始终传递给类方法为第一个参数,但是您的方法定义不需要参数,甚至不需要参数self - 请参阅here进行详细说明。

+0

哦...一个愚蠢的错误哈哈谢谢,男人! –