2016-03-21 96 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

哦...一個愚蠢的錯誤哈哈謝謝,男人! –