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
--
http://mail.python.org/mailman/listinfo/python-list