私は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
これは暗黙的にオブジェクトをメソッドに渡しているので、メソッドの宣言を 'def printDeck(self):'に変更します。 – Maroun
また、 'Deck.totalCards = numberOfDecks * 4'や' for i in Deck.deck: 'の代わりに' self.totalCards = numberOfDecks * 4'と 'for i in self.deck:'を実行しているはずです。最初のケースでは、インスタンスのデッキ/合計カードを変更しています。 2番目のクラスは、クラスのデッキ/合計カードを変更します。 –
複数のデッキインスタンスを持ちたい場合、これはあなたに影響します。関連する質問: "なぜPythonメソッドに" self "引数を明示的に指定する必要がありますか?](https://stackoverflow.com/questions/68282/why-あなたが必要とする、明示的に自己引数を持ったPythonメソッドへの変換)」を参照してください。 –