ANNOUNCE: Thesaurus - a recursive dictionary subclass using attributes
Terry Reedy
tjreedy at udel.edu
Wed Dec 12 20:36:51 EST 2012
On 12/12/2012 7:30 PM, Steven D'Aprano wrote:
> On Wed, 12 Dec 2012 17:20:53 -0500, Dave Cinege wrote:
>
>> Isn't super() depreciated?
>
> Heavens no. super() is the recommended way to do inheritance, and the
> *only* way to correctly do multiple inheritance[1].
Indeed. Rather than super() being deprecated, it was made easier to use
in 3.x by being special cased during compilation. Notice the difference
of signatures:
2.7: super(type[, object-or-type])
3.3: super([type[, object-or-type]])
"The zero argument form only works inside a class definition, as the
compiler fills in the necessary details to correctly retrieve the class
being defined, as well as accessing the current instance for ordinary
methods."
> [1] Well, technically there's another way: one might reimplement the
> functionality of super() in your own code, and avoid using super() while
> having all the usual joys of reinventing the wheel.
This deeper integration means that it could not be completely
reimplemented in Python ;-).
--
Terry Jan Reedy
More information about the Python-list
mailing list