--- title: Правила оформления кода --- {%hackmd theme-dark %} ###### tags: `python` [TOC] # Импорты Импорты всегда помещаются в начале файла, сразу после комментариев к модулю и строк документации, и перед объявлением констант. Импорты должны быть сгруппированы в следующем порядке: 1. импорты из стандартной библиотеки 1. импорты сторонних библиотек 1. импорты модулей текущего проекта # Наименование переменных Переменные именуются маленькими буквами, слова разделяются нижним подчёркиванием: ```python my_variable = 123 ``` Константы объявляются на уровне модуля и записываются только заглавными буквами, а слова разделяются символами подчеркивания: ```python SQRT_3 = 1,73 ``` # Наименование функций Функции именуются маленькими буквами, слова разделяются нижним подчёркиванием: ```python def my_function(): pass ``` # Аргументы функций При наличии большого количества аргументов располагаем их в несколько строк: ```python= def long_function_name( var_one, var_two, var_three, var_four): print(var_one) ``` # Наименования классов CapitalizedWords (слова с заглавными буквами, или CapWords, или CamelCase) # Форматирование строк Применяем **только** конструкции вида ```python f"text with {var1} and {var2}" ``` # Комментарии | **Код комментируем обязательно!** | | ------------------------------- | * Описываем все неявные вещи, логику работы программы * Сразу пишем блоки **:TO DO:** * Для для всех публичных модулей, функций, классов, методов пишем строки документации: ```python 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 ``` # Многострочные конструкции Закрывающие круглые/квадратные/фигурные скобки в многострочных конструкциях должны находиться под первым непробельным символом последней строки списка: ```python= my_list = [ 1, 2, 3, 4, 5, 6, ] result = some_function_that_takes_arguments( 'a', 'b', 'c', 'd', 'e', 'f', ) ```