Creating a class that has orderable objects
We often need objects that can be sorted into order. Log records are often ordered by date and time. When simulating card games, it's often essential to be able to sort the Card
objects into a defined order. When cards form a sequence, sometimes called a straight, this can be an important way to score points. This is part of games such as Poker, Cribbage, and Pinochle.
Most of our class definitions have not included the features necessary for sorting objects into order. Many of the recipes have kept objects in mappings or sets based on the internal hash value computed by the __hash__()
method, and an equality test defined by the __eq__()
method.
In order to keep items in a sorted collection, we'll need the comparison methods that implement <
, >
, <=
, and >=
. These are in addition to ==
and !=
. These comparisons are all based on the attribute values of each object and are distinct for every class we might define...