[Python-Dev] Naming conventions in Py3K

Brett Cannon brett at python.org
Fri Dec 30 07:33:49 CET 2005


On 12/29/05, Ka-Ping Yee <python-dev at zesty.ca> wrote:
> In a fair number of cases, Python doesn't follow its own recommended
> naming conventions.  Changing these things would break backward
> compatibility, so they are out of the question for Python 2.*, but
> it would be nice to keep these in mind for Python 3K.
>
>     Constants in all caps:
>         NONE, TRUE, FALSE, ELLIPSIS
>
>     Classes in initial-caps:
>         Object, Int, Float, Str, Unicode, Set, List, Tuple, Dict,
>         and lots of classes in the standard library, e.g.
>         anydbm.error, csv.excel, imaplib.error, mutex.mutex...
>
> I know these probably look a little funny now to most of us,

Oh yeah.  =)

> as
> we're used to looking at today's Python (they even look a little
> funny to me) but i'm pretty convinced that consistency will be
> better in the long run.
>

Well, the problem is obviously requiring existing Python coders to
have to re-educate themselves and the amount of code breakage. 
Luckily stuff like this should be changeable by some script that can
try to convert 2.x code to 3.0 code.

I am fine with changing the built-in types, but changing the built-in
singletons just looks *really* odd to me.  So odd that I just don't
want to see them changed.  I mean when I think of constants, I think
of a variable that references an object and that reference never
changes.  The built-ins you are referencing, though, are singletons:
named objects that are not variables.  So keeping their naming scheme
as-is does not feel like a breaking of the rules to me since they are
not treated the same (especially at the C level).

-Brett


More information about the Python-Dev mailing list