Origin of the term "first-class object"

Ben Finney bignose-hates-spam at and-benfinney-does-too.id.au
Mon Nov 17 22:52:46 CET 2003

On 17 Nov 2003 13:35:36 -0800, Hung Jung Lu wrote:
> "First-class object" means "something passable as an argument in a
> function call", but I fail to see the connection with "object class"
> or with "first-class airplane ticket".

The term is analogous to "first-class citizen".  It implies that no
other kind of object has privilege to do more than this object, i.e. it
has the most elevated object status -- first-class.

> Also, if there are first-class objects, what would the second-class
> objects or economy/tourist class objects be? :)

Objects with fewer capabilities.  E.g. in many OO-capable languages,
built-in types are not first-class objects; you (variously) can't
inherit from them, pass them as arguments, access their methods, etc.

Using this term implies, by social analogy, that the existence of
objects which are lower than first-class is undesirable and should be
rectified by elevating the status of all objects toward the ideal state:
where all are first-class.

This is why Pythonistas are proud that everything in Python is a
first-class object.

 \          "If you get invited to your first orgy, don't just show up |
  `\             nude. That's a common mistake. You have to let nudity |
_o__)                                       'happen.'"  -- Jack Handey |
Ben Finney <http://bignose.squidly.org/>

More information about the Python-list mailing list