Michael Chermside schrieb: > Not broken, but perhaps wrongheaded. The recipe went out of its way > to ensure that it would raise an exception of enum values from different > enumerations were compared. There's nothing out there saying that this > is a bad thing to do.
And it's actually fine for three-way compare: different enums don't naturally arrange. > I propose that we institute a new policy. The policy should state: > > __eq__ methods should always return True or False. They should > only raise an exception if there is some internal error within > one of the objects being compared -- they should never raise > an exception because the other object is of an unexpected type. That policy is currently difficult to implement, but reasonable (difficult because it is quite some code to write). > On the other hand, __lt__, __gt__ and friends SHOULD raise an > exception when the object being compared is of some type for > which the ordering does not make sense (e.g.: unicode vs > byte-string or complex vs anything). Right; same for three-way compare. > What do others think? Is this the "right" approach? For the moment, the first section gets augmented by "issue a warning if you think the user is comparing things incorrectly". Regards, Martin _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com