Христо обнови решението на 20.03.2014 19:53 (преди над 10 години)
Кръсти си класовете Ace а не CardAce, Spades а не SuitSpades. Така няма нужда да съхраняваш атрибут Type. Името на всеки клас е достъпно в self.__class__.__name__
или в Ace.__name__
например.
Освен това ако ще пишеш конструктор, който добавя атрибути без да приема аргументи е по-добре да не го пишеш изобщо:
class SuitDiamonds(Suit):
def __init__(self):
self.color = "red"
self.type = "Diamonds"
e същото като
class SuitDiamonds(Suit):
color = "red"
type = "Diamonds"
Всъщност не е нужно да дефинираш методи за да дефинираш клас. За решението на задачата по принцип можеш да преместиш всички методи от отделните карти и бои в базовият им клас.