2016-03-21 23 views
0

Ich lerne Python für ein paar Wochen jetzt auf udemy.com und für meine OOP Klassen, bat uns der Mentor, ein Blackjack-Spiel zu erstellen. Meine erste Aufgabe war es, eine Klasse für das Deck zu erstellen. Und ich habe dies:Blackjack Spiel in 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() 

Die Sache ist ... wenn ich versuche, das Deck zu drucken, erhalte ich und Fehler, der mir sagt, dass das Verfahren printDeck kein Argument nimmt und ich bin vorbei ein. Ich habe keine Ahnung warum ... Kann mir jemand helfen?

  • Python 2.7.11
  • Ich verwende Windows 10
  • CMD
  • Sublime Text 3
+5

Implizit übergeben Sie das Objekt an die Methode, ändern Sie die Deklaration der Methode zu 'def printDeck (self):'. – Maroun

+0

Wahrscheinlich solltest du 'self.totalCards = numberOfDecks * 4' und' für i in self.deck: 'statt' Deck.totalCards = numberOfDecks * 4' und 'für i in Deck.de:' machen. Im ersten Fall modifizierst du die deck/totalCards der Instanz. Die zweite modifiziert die Deck/TotalCards der Klasse. Dies betrifft Sie, wenn Sie mehrere Deck-Instanzen haben möchten. –

+0

Verwandte Frage: "[Warum brauchen Sie das Argument" self "explizit in eine Python-Methode?] (Https://stackoverflow.com/questions/68282/why- do-you-need-explizit-habe-die-selbst-argument-in-a-python-methode) ". –

Antwort

2

self - das heißt, das Objekt - immer auf Klassenmethoden übergeben als das erste Argument, aber Ihre Methodendefinition nimmt keine Argumente, nicht einmal self - siehe here für die Ausarbeitung.

+0

Oh ... Ein dummer Fehler haha ​​Danke, Mann! –