[Python-Dev] RE: Hot-To Guide for Descriptors - Nits! :-)
François Pinard
pinard at iro.umontreal.ca
Wed Jan 21 21:33:38 EST 2004
[Jeremy Hylton]
> On Wed, 2004-01-21 at 20:24, François Pinard wrote:
> > If there is no base class, then "if there's a global variable named
> > __metaclass__, it is used." So my guess would be that adding a mere
> > __metaclass__ = type
> > in global scope for a module would make all classes be "new-style",
> > without the need to subclass them from object explicitly.
> Unless you define a class that inherits from a base class defined in
> another module.
I thought about this of course. This is no problem in our case, since
these other modules will have their `__metaclass__ = type' themselves.
> I prefer to inherit from object, because it is more explicit, and
> avoids possible confusion when some classes have classic bases.
A `__metaclass__ = type' at the beginning of a module is explicit enough
to my eyes. If I can demonstrate that this does not harm, it will
become a convention here to include this line in each and every module
for all in-house projects, and we should be done with classic classes.
Unless we sub-class classic classes from the Python library, I do not
know how frequently we do that. By the way :-), I presume there are
plans for the Python library to progressively switch to new-style
classes whenever possible? If not, should they be?
--
François Pinard http://www.iro.umontreal.ca/~pinard
More information about the Python-Dev
mailing list