How about defining the self_transition on the representor class level like the class level descriptors and then use it on the instance level with instance_exec(self) or something.