2016-03-21 3 views
0

私はudemy.comで数週間、Pythonを学んでいます。私のOOPクラスでは、メンターがブラックジャックゲームを作成するように頼んでいました。私の最初の仕事は、デッキ用のクラスを作成することでした。そして、私が作っこの: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は引数を取らず、私は1つを渡していることを私に告げるエラー。なぜ私は考えていない..誰も私を助けることができますか?

  • のPython 2.7.11
  • 私は、Windows 10
  • CMDを使用してい
  • 崇高なテキスト3
+5

これは暗黙的にオブジェクトをメソッドに渡しているので、メソッドの宣言を 'def printDeck(self):'に変更します。 – Maroun

+0

また、 'Deck.totalCards = numberOfDecks * 4'や' for i in Deck.deck: 'の代わりに' self.totalCards = numberOfDecks * 4'と 'for i in self.deck:'を実行しているはずです。最初のケースでは、インスタンスのデッキ/合計カードを変更しています。 2番目のクラスは、クラスのデッキ/合計カードを変更します。 –

+0

複数のデッキインスタンスを持ちたい場合、これはあなたに影響します。関連する質問: "なぜPythonメソッドに" self "引数を明示的に指定する必要がありますか?](https://stackoverflow.com/questions/68282/why-あなたが必要とする、明示的に自己引数を持ったPythonメソッドへの変換)」を参照してください。 –

答えて

2

self - それは、オブジェクトがされて - いつものようにクラスメソッドに渡されます最初の引数ですが、メソッド定義には引数はありません。selfはありません。詳細はhereを参照してください。

+0

ああ...ダムエラーハハありがとう、男! –

関連する問題