newb __init__ inheritance
Ian Kelly
ian.g.kelly at gmail.com
Sun Mar 11 07:40:53 EDT 2012
On Sun, Mar 11, 2012 at 4:56 AM, hyperboogie <hyperboogie at gmail.com> wrote:
> 1. What do you mean by "subclassing `object`"?
In Python 2 there are two different types of classes: classic classes,
which are retained for backward compatibility, and new-style classes,
which were introduced in Python 2.2. Classic classes are the default.
In order to get a new-style class (strongly recommended), your class
must inherit directly or indirectly from object. In the following, A
and B are classic classes, whereas C and D are new-style classes:
class A: pass
class B(A): pass
class C(object): pass
class D(C): pass
In Python 3, classic classes have been removed, and so all four of the
classes above would be new-style.
> 2. Is the mro function available only on python3?
No, but it is available only on new-style classes. If you try it on a
classic class, you'll get an AttributeError.
Cheers,
Ian
More information about the Python-list
mailing list