On 2/2/2018 1:53 AM, Terry Reedy wrote:
 >>> object.__doc__
'The most base type'

I and several people on python-list thread "interactive help on the base object" (Dec   2013) thought this could be improved.  On
https://bugs.python.org/issue20285 and

After some research, I believe the following, which is wrote on the issue, explains the uneasiness many feel.

'Base' is actually two words.  As a noun (or verb), it comes from Ancient Greek βάσις (básis), a foundation from which other things extend or derive.  As an adjective, it comes from Late Latin bassus (“low”).

In computer science and Python, the couplet 'base class' is being used, it seems to me and apparently others, as a noun-noun compound, meaning, 'foundation class', not as an adjective-noun phrase meaning 'low class' (let along 'depraved class').  However, 'most base class' must be parsed as '(most base) class', with 'base' re-interpreted as the adjective meaning 'low' (or worse).  The switch in meaning of 'base' is similar in 'baseball' versus  'most base ball'.

I have suggested
"The superclass for all Python classes."
"The starting base class of all types and classes other than itself."

"a base for all classes." object entry in lib ref, function
"the ultimate base class of all other classes."  Martin Panter

object is neither a base or superclass of itself, so the first of each pair above is not quite right.

"the base class of the class heirarchy ['hierarchy']"  Steven D'Aprano
"the root of the class heirarchy"  ditto
+ quotes from Java and Ruby

Jeff Allen and Barry Warsaw like either, with BW slightly referring the first.

I was thinking about 'tree' instead of 'hierachy', but 'class tree' is wrong and 'directed acyclic graph of classes' a bit wordy. While hierarchies are often thought of as trees, it is possible for someone to report to more than one person.

No one (yet) supported the status quo.

Martin also suggested a continuation:  "When called, it accepts no
arguments and returns a new unique and featureless object."

Even though object, unlike any other class, is primarily used as a base class rather than instance source, the latter should be included. For other built-in classes, the summary line describes instances. I would leave out 'unique' as that could be confused with 'singleton'.

Provisional replacement, following the format of other class docstrings except for describing the class instead of instances, and intended to be helpful to beginners.

"The base class of the class hierarchy.

When called, it accepts no arguments and returns a new featureless instance that has no instance attributes and cannot be given any."

Passing arguments and adding attributes are two common mistakes.

Terry Jan Reedy

Python-Dev mailing list

Reply via email to