Код на уровне модуля
Анти-паттерн
Код, который находиться вне if __name__ == '__main__' или других функций, будет немедленно исполнен при импорте файла в качестве модуля. Также важно помнить, что тому модулю, который импортирует другой модуль, могут стать доступны секреты и настройки конфигурации импортируемого модуля.
Пример¶
Плохо:
from environs import Env
env = Env()
env.read_env()
access_token = env.str('ACCESS_TOKEN')
def do_something():
...
do_something()
Хорошо:
from environs import Env
def do_something():
...
def main():
env = Env()
env.read_env()
access_token = env.str('ACCESS_TOKEN')
do_something(access_token)
if __name__ == '__main__':
main()