Probleme bei Bsp aus Think Python

Code-Stücke können hier veröffentlicht werden.
Antworten
SarahS
User
Beiträge: 2
Registriert: Freitag 19. Juni 2009, 01:23

Ein freundliches Hallo an alle! Ich fange gerade erst an Python zu erlernen aber leider hakt es irgendwie an folgenden Beispiel aus dem Buch Think Python: http://en.wikibooks.org/wiki/Think_Python/Inheritance:

Code: Alles auswählen

class Card:
    """represents a standard playing card."""
    def __init__(self, suit=0, rank=2): # only used as default card
        self.suit = suit
        self.rank = rank
        
    suit_names = ['Clubs', 'Diamonds', 'Hearts', 'Spades']
    rank_names = [None, 'Ace', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'Jack', 'Queen', 'King']

    def __str__(self):
        return '%s of %s' % (Card.rank_names[self.rank], Card.suit_names[self.suit])

class Deck:

    def __init__(self):
        self.cards = []
        for suit in range(4):
            for rank in range(1, 14):
                card = Card(suit, rank)
                self.cards.append(card)
		
	def __str__(self):
	    res = []
	    for card in self.cards:
	        res.append(str(card))
	    return '\n'.join(res)

deck = Deck()
print deck
Der Terminal output ist immer nur der Verweis auf die Speicheradresse:

Code: Alles auswählen

<__main__.Deck instance at 0xb7d03c0c>
Insofern denke ich fast dass dort nur ein leeres Objekt hinterlegt ist, kann den Fehler aber nicht lokalisieren. Könnt Ihr mir mit Eurer Erfahrung vielleicht weiterhelfen?
Wäre euch soo dankbar! :)
Sarah
Zap
User
Beiträge: 533
Registriert: Freitag 13. Oktober 2006, 10:56

Hallo und Willkommen im Forum.

Also bei mir funktioniert das Beispiel.

Code: Alles auswählen

Ace of Clubs
2 of Clubs
3 of Clubs
4 of Clubs
5 of Clubs
...
The Spirit
User
Beiträge: 276
Registriert: Freitag 8. Juni 2007, 08:50
Wohnort: 84xxx Bereich
Kontaktdaten:

welche python version nutzt du?
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

SarahS, dein gezeigter Beispielcode ist korrekt. Du hast dich aber bestimmt beim Abtippen der `__str__`-Methode von `Deck` vertippt. Das sind zwei Unterstriche vor und nach dem `str`.

Stefan
SarahS
User
Beiträge: 2
Registriert: Freitag 19. Juni 2009, 01:23

Vielen Dank an Euch! Jetzt funktioniert es bei mir auch! :D
Aber ist schon seltsam, hab mir gestern stundenlang den Kopf zerbrochen. :K naja, wird bestimmt nicht das letzte Mal gewesen sein...
Poolboy
User
Beiträge: 12
Registriert: Montag 25. Mai 2009, 09:49
Kontaktdaten:

SarahS hat geschrieben:Vielen Dank an Euch! Jetzt funktioniert es bei mir auch! :D
Aber ist schon seltsam, hab mir gestern stundenlang den Kopf zerbrochen. :K naja, wird bestimmt nicht das letzte Mal gewesen sein...
So gehts mir auch manchmal. Aller Anfang ist schwer ;) Aber es wird von Tag zu Tag besser. Man kriegt immer mehr Routine. Programmieren ist halt wie ein Instrument spielen :P
def getGreetingForm(self):
return 'Gruß Poolboy'
Antworten