Commonly-used names in the Python standard library

Chris Angelico rosuav at
Thu Feb 20 12:47:29 CET 2014

On Thu, Feb 20, 2014 at 10:28 PM, Marko Rauhamaa <marko at> wrote:
> Chris Angelico <rosuav at>:
>> On Thu, Feb 20, 2014 at 9:22 PM, Marko Rauhamaa <marko at> wrote:
>>>   py35.unless x > 7:
>>>       return
>> What about return? Are you allowed to namespace that? And 'from' and
>> 'import' and '*'?
> Old keywords are guaranteed not to clash with programs. Introducing new
> keywords runs that risk. Hence, C had to introduce the ugly _Bool
> keyword.

Okay, so what you're saying is that there are three states:

Before Python X.Y, the unless keyword simply doesn't exist. (It can't
be coded in as a module, so it can't exist until someone implements
the code.)

>From X.Y, it can be called up by importing it from "pyAB" and used in
its namespace.

>From A.B onward, it always exists.

Python has a facility like this. It doesn't namespace the keywords,
but it does let you choose whether to have them or not. In Python 2.5,
you could type "from __future__ import with_statement" to turn 'with'
into a keyword. After Python 2.6, it's always a keyword.


More information about the Python-list mailing list