Caveat emptor! Due to the diamond-like inheritance structures frequently seen with new-style Python objects (i.e. all objects are derived from the “object” class), the Python method resolution order (MRO) has been slightly adapted.
It used to be left-to-right, depth first. With old-style objects, this almost never caused problems. With new-style, because of the common “object” ancestor, this could cause redundant occurrences (obviously due to the diamond structure). Typically Python, this has been solved in a simple yet effective manner.
When trying to determine which method will be invoked when working with multiply-inherited (or mixed-in) objects, use the left-to-right depth first rule. However, if you see any repeated occurrences, delete all but the last. This is the new Python MRO.
Oh bugger, just read this.