Şimdi udemy.com'da ve OOP sınıflarım için birkaç hafta python öğreniyorum, mentor bir Blackjack oyunu yaratmamızı istedi. İlk görevim güverte için bir sınıf oluşturmaktı. Ve yaptığım bu:Python'da Blackjack oyunu
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()
şeydir ... Ben güverte yazdırmaya çalıştığınızda alıyorum ve yöntem printDeck hiçbir argüman alır ve ben bir geçiyorum söylüyor hatası. Neden olduğu hakkında hiçbir fikrim yok .. Bana yardım eden var mı?
- Python 2.7.11
- Windows'u 10
- CMD kullanıyorum
- Sublime Text 3
Nesneyi yönteme dolaylı olarak iletmek, yöntemin bildirimini "def yazdırmadeck (self):" olarak değiştirin. – Maroun
Ayrıca, muhtemelen "self.totalCards = numberOfDecks * 4" ve 'self.deck için i ':' Deck.totalCards = numberOfDecks * 4' yerine '' 've' Deck.deck: 'i için yapmalısınız. İlk durumda, örneğin deck/totalCards'ı değiştiriyorsunuz. İkincisi, sınıfın deck/totalCards'ını değiştirir. Birden çok Deck örneğine sahip olmak istiyorsanız bu durum sizi etkileyecektir –
İlgili soru: "[Neden kendi kendine argümanını bir Python yöntemine sahip olmak gerekiyor?] (Https://stackoverflow.com/questions/68282/why- do-sen-ihtiyaç, açıkça var-kendini-argüman-içine-a-python-yöntemi)". –