python中的二十一点游戏
问题描述:
我在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
答
self
- 也就是说,对象 - 始终传递给类方法为第一个参数,但是您的方法定义不需要参数,甚至不需要参数self
- 请参阅here进行详细说明。
+0
哦...一个愚蠢的错误哈哈谢谢,男人! –
它将对象隐式传递给方法,将方法的声明更改为'def printDeck(self):'。 – Maroun
另外,可能你应该在'self.totalCards = numberOfDecks * 4'和'for self indeck:'而不是'Deck.totalCards = numberOfDecks * 4'和'为Deck.deck:'中做'self.totalCards = numberOfDecks * 4'。在第一种情况下,您正在修改实例的deck/totalCards。第二个修改班级的deck/totalCards。这会影响你,如果你想有多个Deck实例 –
相关问题:“[为什么你需要显式地将”self“参数引入Python方法?](https://stackoverflow.com/questions/68282/why-做任您需要,明确具备的,在自一个参数 - -A-python的方法)”。 –