TG Telegram Group & Channel
Python вопросы с собеседований | United States America (US)
Create: Update:

🐍 Python-совет: ускоряй импорт и запуск с помощью `__main__` guard и lazy imports

Когда ты пишешь утилиту или CLI‑скрипт, важно не загружать всё сразу. Используй if __name__ == "__main__" + отложенный импорт, чтобы ускорить запуск и избежать лишней инициализации.

🔧 Пример:


# script.py

def main():
import argparse
import time

parser = argparse.ArgumentParser()
parser.add_argument("--sleep", type=int, default=1)
args = parser.parse_args()

print("Start sleeping...")
time.sleep(args.sleep)
print("Done.")

if __name__ == "__main__":
main()


📌 Почему это важно:

• Импорты происходят только при запуске, а не при импорте модуля из другого файла
• Снижается время запуска CLI-инструмента
• Уменьшается нагрузка при unit-тестировании, если main() не нужен
• Позволяет использовать файл как модуль и как скрипт

🛠️ Особенно эффективно при:
• больших CLI-инструментах (`argparse`, rich, pandas и др.)
• работе в средах, где startup time критичен (например, serverless)

🧠 Вывод: if __name__ == "__main__" + локальные импорты = чище, быстрее, гибче.

🐍 Python-совет: ускоряй импорт и запуск с помощью `__main__` guard и lazy imports

Когда ты пишешь утилиту или CLI‑скрипт, важно не загружать всё сразу. Используй if __name__ == "__main__" + отложенный импорт, чтобы ускорить запуск и избежать лишней инициализации.

🔧 Пример:


# script.py

def main():
import argparse
import time

parser = argparse.ArgumentParser()
parser.add_argument("--sleep", type=int, default=1)
args = parser.parse_args()

print("Start sleeping...")
time.sleep(args.sleep)
print("Done.")

if __name__ == "__main__":
main()


📌 Почему это важно:

• Импорты происходят только при запуске, а не при импорте модуля из другого файла
• Снижается время запуска CLI-инструмента
• Уменьшается нагрузка при unit-тестировании, если main() не нужен
• Позволяет использовать файл как модуль и как скрипт

🛠️ Особенно эффективно при:
• больших CLI-инструментах (`argparse`, rich, pandas и др.)
• работе в средах, где startup time критичен (например, serverless)

🧠 Вывод: if __name__ == "__main__" + локальные импорты = чище, быстрее, гибче.


>>Click here to continue<<

Python вопросы с собеседований




Share with your best friend
VIEW MORE

United States America Popular Telegram Group (US)