From: Guido van Rossum Date: Mon, 3 Dec 2001 15:46:59 +0000 (+0000) Subject: New about super. X-Git-Tag: v2.2.1c1~599 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=cdbbd0a59dd9fa3db55c4d21defc495dfbdea0e4;p=python New about super. --- diff --git a/Misc/NEWS b/Misc/NEWS index 69f80ee3d8..d97193d99c 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -10,6 +10,21 @@ Type/class unification and new-style classes with finalizers. (The "get attribute" and "set attribute" methods are still called __get__ and __set__, respectively.) +- Some subtle issues with the super built-in were fixed: + + (a) When super itself is subclassed, its __get__ method would still + return an instance of the base class (i.e., of super). + + (b) super(C, C()).__class__ would return C rather than super. This + is confusing. To fix this, I decided to change the semantics of + super so that it only applies to code attributes, not to data + attributes. After all, overriding data attributes is not + supported anyway. + + (c) The __get__ method didn't check whether the argument was an + instance of the type used in creation of the super instance. + + Core and builtins Extension modules