A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://mail.python.org/pipermail/python-dev/2004-January/042200.html below:

[Python-Dev] Re: Hot-To Guide for Descriptors

[Python-Dev] Re: Hot-To Guide for Descriptors - Nits! :-)François Pinard pinard at iro.umontreal.ca
Thu Jan 22 10:06:12 EST 2004
[Christian Tanzer]

> François Pinard <pinard at iro.umontreal.ca> wrote:

> > [...] found by scanning the base classes of the current class, and
> > `object' always when there is no base class for a "new-style" class.

> As always, a little experiment at the interactive prompt is
> instructive: [...]

Indeed.  One more tiny experiment is also enlightening:


Python 2.3.3 (#1, Jan 21 2004, 22:36:17) 
>>> __metaclass__ = type
>>> class A: pass
... 
>>> A.__bases__
(<type 'object'>,)
>>> A.__mro__
(<class '__main__.A'>, <type 'object'>)
>>> 


(I merely added __mro__ to your example) which seems to confirm that
`object' is always implied if the metaclass is `type', exactly as if it
was explicitly listed as a base.

Unless the above experiment just reveals some unspecified behaviour,
which just happens to not correctly be in-lined with Guido's intents?
That is possible, yet it seems unlikely.  Only Guido really knows! :-)

Maybe we should not overly state that one ought to explicitly sub-class
a class from `object' to get a new style class, nor suggest that not
doing so might yield broken classes with unpredictable behaviour.

Of course, we have been educated to read "class A(object):" as the
standard way to flag `A' as being new-style, but if I could avoid adding
such "(object)" everywhere in the code, and merely declare __metaclass__
once per module, it looks much neater to me.  Taste varies :-). More it
goes, more it looks like my fears were not really sounded.

Thanks to all those who participated in clarifying this little issue.

-- 
François Pinard   http://www.iro.umontreal.ca/~pinard

More information about the Python-Dev mailing list

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4