While I appreciate the resulting precision, the repetition feels a bit Python-esque to me. :-)
My impression was that part of the reason for this was to preserve "self" instead of using instance_eval, whic h is understandable. However, _why has come up with a C extension called "mixico" that provides similar functionalityh via mixins, without changing self: