enthought/envisage — comment on commit a58e58b5fbaf99dd0e29874967743846b4ea6d78
File:  line 0
By mchilvers:

The nice thing about the Category is that it is an explicit declaration that you wish to add something to the interface of the object (and of course allows you to add the type information too via traits)... I know Python lets us just tack things onto objects arbitrarily, but its rarely a good idea, and even when it is you have to pay the price of readability. There are other dangers, of course, like breaking serialization of the object you are tagging onto etc, and using a Category doesn't prevent those, but it at least makes it look like you *meant* it to happen ;^)