"Paul McGuire" <[EMAIL PROTECTED]> wrote in message news:[EMAIL PROTECTED] >I have some places in pyparsing where I've found that the most > straightforward way to adjust an instance's behavior is to change its > class. > I do this by assigning to self.__class__, and things all work fine. > > (Converting to use of __new__ is not an option - in one case, the change > is > temporary, and before the end of the function, I change it back again.) > > Any comments on this practice? Is this intended capability for Python > objects, or am I taking advantage of a fortuitous accident, which may get > undone at a future time?
Very little if any of the new class stuff is accidental. As I remember, .__class__ was originally read-only and was intentionally changed when practical use cases for rewriting it were developed and presented with a request for change. Though I could be wrong, I would comfortably use this feature myself. Terry J. Reedy -- http://mail.python.org/mailman/listinfo/python-list