Try   HackMD
tags: python

Импорты

Импорты всегда помещаются в начале файла, сразу после комментариев к модулю и строк документации, и перед объявлением констант.

Импорты должны быть сгруппированы в следующем порядке:

  1. импорты из стандартной библиотеки
  2. импорты сторонних библиотек
  3. импорты модулей текущего проекта

Наименование переменных

Переменные именуются маленькими буквами, слова разделяются нижним подчёркиванием:

my_variable = 123

Константы объявляются на уровне модуля и записываются только заглавными буквами, а слова разделяются символами подчеркивания:

SQRT_3 = 1,73

Наименование функций

Функции именуются маленькими буквами, слова разделяются нижним подчёркиванием:

def my_function():
    pass

Аргументы функций

При наличии большого количества аргументов располагаем их в несколько строк:

def long_function_name( var_one, var_two, var_three, var_four): print(var_one)

Наименования классов

CapitalizedWords (слова с заглавными буквами, или CapWords, или CamelCase)

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

Применяем только конструкции вида

f"text with {var1} and {var2}"

Комментарии

Код комментируем обязательно!
  • Описываем все неявные вещи, логику работы программы
  • Сразу пишем блоки :TO DO:
  • Для для всех публичных модулей, функций, классов, методов пишем строки документации:
def my_cool_func(a, b, c):

    """
    Определяет жопинус пусинуса и печатает его [опиционально]
    :param a: степень жопинуса
    :param b: тип пусинуса
    :param c:печатать (True) или ytn (False)
    :return:
    """
    joppus = foo(a, b)
    if c:
        print joppus
    return joppus

Многострочные конструкции

Закрывающие круглые/квадратные/фигурные скобки в многострочных конструкциях должны находиться под первым непробельным символом последней строки списка:

my_list = [ 1, 2, 3, 4, 5, 6, ] result = some_function_that_takes_arguments( 'a', 'b', 'c', 'd', 'e', 'f', )