Wie man "__repr__" richtig implementiert / überlastet?
Neu zu Python und das mag eine dumme Frage sein, aber wie setzt man das @ richtig repr Methode
Ich habe ein kleines Programm geschrieben, um ein Kartenspiel zu simulieren, aber ich weiß nicht, was ich für das @ schreiben sol repr Methode. Das repr Methode für dasCard Klasse war ziemlich einfach, aber ich weiß nicht, was ich für das @ tun soDeckOfCards Klasse Hier ist mein Code:
import random
class Card:
'''Create a single card, by id number'''
# Class variables, created once for the class
suits = [ '\u2660', '\u2661', '\u2662', '\u2663' ]
ranks = [ 'A','2','3','4','5','6','7','8','9','10','J','Q','K' ]
def __init__(self, n=0):
# instance variables for _num, _rank, _suit, _value
if 0 <= n < 52:
self._num = n
self._rank = Card.ranks[n%13] # note referencing class vars
self._suit = Card.suits[n//13]
self._value = n%13 + 1
if self._rank == 'A':
self._value = 14
else: # invalid card indicators
self._rank = 'x'
self._suit = 'x'
self._value = -1
def __repr__(self):
return self._ra,nk + self._suit
def __lt__(self,other):
return self._value < other._value
def __le__(self,other):
return self._value <= other._value
def __eq__(self,other):
return self._value == other._value
class DeckOfCards:
'''A Deck is a collection of cards'''
def __init__(self):
self._deck = [ Card(i) for i in range(52) ]
def __repr__(self):
return 'Deck : ', self._deck
def shuffle(self):
return random.shuffle(self._deck)
def deal_a_card(self, i=-1):
#that way player can choose where to draw from
return self._deck.pop(i)
def cards_left(self,count):
return len(self._deck)
new_deck = DeckOfCards()
Fühlen Sie sich auch frei, Kommentare zu allem abzugeben, was Sie möchten, sei es ein Konstruktionsfehler oder eine Redundanz im Code, buchstäblich alles. Danke im Voraus