On 2005 Jan 16, at 10:27, Martin v. Löwis wrote:
Simon Percivall wrote:What would happen if Exception were made a new-style class, enforce inheritance from Exception for all new-style exceptions, and allow all old-style exceptions as before.
string exceptions would break.
Couldn't we just specialcase strings specifically, to keep grandfathering them in?
In addition, code may break which assumes that exceptions are classic instances, e.g. that they are picklable, have an __dict__, and so on.
There would be no problem giving the new
class Extension(object): ...
a __dict__ and the ability to get pickled, particularly since both come by default.
The "and so on" would presumably refer to whether special methods should be looked up on the instance or the type. But as I understand the question (raised in the threads about copy.py) the planned solution is to make special methods their own kind of descriptors, so even that exoteric issue could well be finessed.
> Am I wrong in assuming that only themost esoteric exceptions inheriting from Exception would break by Exception becoming new-style?
Yes, I think so.
It seems to me that if the new-style Exception is made very normally and strings are grandfathered in, we ARE down to exoteric breakage cases (potentially fixable by those new magic descriptors as above for specialmethods).
Alex
_______________________________________________ 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