Структура кода в файле

Общая структура кода в файле такова:

  1. Импорты
  2. Объявления глобальных констант
  3. Объявления функций
  4. Остальной код, собранный в блок if __name__ == '__main__'

Каждый программист, открывающий ваш код, будет ожидать соблюдения этой структуры. Так в коде проще ориентироваться.

Пример как выглядит правильно структурированный код:

import library
import another_library

NOTIFICATION = 'this is a global constant'


def do_things():
    ...
    print(NOTIFICATION)


if __name__ == '__main__':
    bot = ...
    do_things()
    do_things()
    do_things()

Функция main

Объявляя переменную внутри ifmain, вы делаете её глобально доступной, даже того не желая. Каждая функция сможет до неё добраться и прочитать. На изоляцию кода это влияет плохо, появляются неявные связи. Причём такое часто случается не по умыслу, а случайно, по невнимательности.

Чтобы не следить за всеми переменными код прячут внутрь функции def main() и делают все переменные локальными. Внутри ifmain остаётся только вызов main():

import library
import another_library

NOTIFICATION = 'this is a global constant'


def do_things():
    ...
    print(NOTIFICATION)


def main():
    bot = ...
    do_things()
    text = ...
    do_things()
    do_things()


if __name__ == '__main__':
    main()

В коде выше переменные bot и text доступны только внутри def main и недоступны из def do_things. Если тот же код записать без def main, то переменные станут глобальными, и возрастёт риск ошибки по невнимательности.

Название функции main – это дань глубокой традиции, перекочевавшей из других языков программирования.

Прячьте код внутрь функции def main.

Читать далее


Попробуйте бесплатные уроки по Python

Получите крутое код-ревью от практикующих программистов с разбором ошибок и рекомендациями, на что обратить внимание — бесплатно.

Переходите на страницу учебных модулей «Девмана» и выбирайте тему.