Well you cross-posted this enough, including a Java group, and didn't even ask about us... What a pity.
In Java, classes can implement the Comparable interface. This interface contains only one method, a compareTo(Object o) method, and it is defined to return a value < 0 if the Object is considered less than the one being passed as an argument, it returns a value > 0 if considered greater than, and 0 if they are considered equal. The object implementing this interface can use any of the variables available to it (AKA address, zip code, longitude, latitude, first name, whatever) to return this -1, 0 or 1. This is slightly different than what you mention as we don't have to "decorate" the object. These are all variables that already exist in the Object, and if fact make it what it is. So, of course, there is no need to un-decorate at the end. There are several built-in objects and methods available to sort Objects that are Comparable, even full Arrays of them. -- http://mail.python.org/mailman/listinfo/python-list