Code styleΒΆ

  • Always import unicode_literals and use unicode literals for everything except where you’re explicitly working with bytes, which are marked with the b prefix.

    Do this:

    from __future__ import unicode_literals
    
    foo = 'I am a unicode string, which is a sane default'
    bar = b'I am a bytestring'
    

    Not this:

    foo = u'I am a unicode string'
    bar = 'I am a bytestring, but was it intentional?'
    
  • Follow PEP 8 unless otherwise noted. flake8 should be used to check your code against the guidelines.

  • Use four spaces for indentation, never tabs.

  • Use CamelCase with initial caps for class names:

    ClassNameWithCamelCase
    
  • Use underscore to split variable, function and method names for readability. Don’t use CamelCase.

    lower_case_with_underscores
    
  • Use the fact that empty strings, lists and tuples are False and don’t compare boolean values using == and !=.

  • Follow whitespace rules as described in PEP 8. Good examples:

    spam(ham[1], {eggs: 2})
    spam(1)
    dict['key'] = list[index]
    
  • Limit lines to 80 characters and avoid trailing whitespace. However note that wrapped lines should be one indentation level in from level above, except for if, for, with, and while lines which should have two levels of indentation:

    if (foo and bar ...
            baz and foobar):
        a = 1
    
    from foobar import (foo, bar, ...
        baz)
    
  • For consistency, prefer ' over " for strings, unless the string contains '.

  • Take a look at PEP 20 for a nice peek into a general mindset useful for Python coding.