Draft Pep (was: Re: Let's Talk About Lambda Functions!)

Terry Reedy tjreedy at udel.edu
Mon Aug 5 18:57:20 CEST 2002

"Bryan Olson" <fakeaddress at nowhere.org> wrote in message
news:3D4E2E87.9070308 at nowhere.org...
> I tried to do that in a previous response.  Python should have a
> procedure builder which does not assign the procedure to a name,
> procedure in Python are first-class values and do not have intrinsic
> names.

All objects in Python are first class, at least in most regards
(exceptions?).  Most do not have names as a property of the object.
They either do not need one or there is not an obvious candidate.  But
there are three exceptions -- functions (usually), classes, and
modules.  The purpose is to provide a string representation that
directs one to the source code that defined the object, since this is
usually what one wants instead of a literal representation of the
object as with numbers, strings, and containers.

Confusion arises because the word 'name' is used for two quite
separate meanings: bound label, which can attached to or detached from
any object, and permanent, internal definition name, which only
applies to the three types listed above.  Perhaps it would help if
'assignment' were described as 'label sticking' rather than 'name
binding'.  Attaching and removing labels is something most of us have
done in 'real' life.  Binding names (whatever that is) is not.

Terry J. Reedy

More information about the Python-list mailing list