Атанас обнови решението на 21.03.2014 13:22 (преди над 11 години)
Няма нужда на всеки подклас на Rank да предефинираш __eq__. Този метод се наследява от базовия клас. Същото важи и за подкласовете на Suit.
def __init__(self, collection=[]): - това е много лоша идея. За подразбираща се стойност на използваш list, което е mutable
Освен тези неща, кода ти е разбираем. Въпреки това, бих те посъветвал да помислиш как да съкратиш решението си.
Hint: с type можеш да си дефинираш класове.
Да разбирам ли, че ако използвам кортеж за подразбираща се стойност т.е.def init(self, collection=()): гореспоменатият проблем не е на лице?
Също така, защо да не трябва да се предефинира eq  за наследяващите Suit, като двата метода сравняват различни неща- цветове в единия случай, и имена в другия?
PS: "__" около init и eq не излизат като хората
