Code style¶
Always import
unicode_literals
and use unicode literals for everything except where you’re explicitly working with bytes, which are marked with theb
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
, andwhile
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.