Форматирование

Давай немного поговорим про форматирование кода. Ты уже наверняка знаешь про PEP8, но это не всё. Есть несколько случаев, которые можно форматировать по-разному, а делать одно и то же по-разному – это для любителей Javascript, а не Python. Давай придерживаться этих правил: от этого любой код станет привычнее и понятнее.

Форматирование списков

Если в списке больше пары элементов и он не умещается в 80 символов, то лучше его форматировать вот так:

blocked_users_ids = [
    11,
    75,
    14,
]

Вот что тут важно: каждый элемент на отдельной строке, все элементы с отступом в 4 пробела, после последнего элемента стоит запятая, закрывающая скобка без отступа. Это делает код понятнее при беглом просмотре и проще при изменении.

Форматирование словарей

Со словарями история почти как со списками: или короткий на одной строке или многострочный:

report_fields_titles_map = {
    'header': 'Заголовок объявления',
    'clicks': 'Количество кликов',
    'cost': 'Общая стоимость',
}

Эти правила особенно хорошо помогают с читаемостью, когда в словаре несколько уровней вложенности:

report_fields_titles_map = {
    'header': 'Заголовок объявления',
    'clicks': 'Количество кликов',
    'cost': {
        'raw': 'Без учёта налогов',
        'nds': 'НДС',
    },
}

Вызов функций/методов

Удивительно, но с вызовом функций такая же история, как со списками и словарями: или короткий вызов на одной строке или каждый аргумент на новой строке.

Отдельным пунктом про именованные аргументы: их не всегда необходимо указывать, но хуже от этого редко бывает.

Смотри, какой кайф:

solution = ChallengeSolutionAttempt(
    user=self.request.user,
    challenge=challenge,
    submitted_at=now(),
)

Кавычки

Используй одинарные или двойные кавычки на свой вкус. Главное – везде придерживаться одного варианта.

Из этого следует важное: если в коде уже используются одинарные – их и используй, даже если привык использовать двойные.