Style Guide For Python Code

Start from the beginning
                                        

      attributes that live in user-controlled namespaces.  E.g. __init__,

      __import__ or __file__.  Never invent such names; only use them

      as documented.

  Prescriptive: Naming Conventions

    Names to Avoid

      Never use the characters 'l' (lowercase letter el), 'O' (uppercase

      letter oh), or 'I' (uppercase letter eye) as single character variable

      names.

      In some fonts, these characters are indistinguishable from the numerals

      one and zero.  When tempted to use 'l', use 'L' instead.

    Package and Module Names

      Modules should have short, all-lowercase names.  Underscores can be used

      in the module name if it improves readability.  Python packages should

      also have short, all-lowercase names, although the use of underscores is

      discouraged.

      Since module names are mapped to file names, and some file systems are

      case insensitive and truncate long names, it is important that module

      names be chosen to be fairly short -- this won't be a problem on Unix,

      but it may be a problem when the code is transported to older Mac or

      Windows versions, or DOS.

      When an extension module written in C or C++ has an accompanying Python

      module that provides a higher level (e.g. more object oriented)

      interface, the C/C++ module has a leading underscore (e.g. _socket).

    Class Names

      Almost without exception, class names use the CapWords convention.

      Classes for internal use have a leading underscore in addition.

    Exception Names

      Because exceptions should be classes, the class naming convention

      applies here.  However, you should use the suffix "Error" on your

      exception names (if the exception actually is an error).

    Global Variable Names

      (Let's hope that these variables are meant for use inside one module

      only.)  The conventions are about the same as those for functions.

      Modules that are designed for use via "from M import *" should use the

      __all__ mechanism to prevent exporting globals, or use the older

      convention of prefixing such globals with an underscore (which you might

      want to do to indicate these globals are "module non-public").

    Function Names

      Function names should be lowercase, with words separated by underscores

      as necessary to improve readability.

Docstring ConventionsWhere stories live. Discover now