tg-me.com/pyproglib/6637
Last Update:
В этом посте рассмотрим лучшие практики импорта модулей в Python, чтобы код был чистым и эффективным.
Старайтесь использовать явный импорт, а не from module import *
, чтобы избежать конфликтов имен и улучшить читаемость кода.
# Плохо
from math import *
# Хорошо
from math import sqrt, pi
Явный импорт помогает лучше понять, какие именно функции или классы используются в вашем коде, и предотвращает «загрязнение» пространства имен.
Существует стандартная практика группировки импортов, которая улучшает структуру кода и делает его более читаемым:
Каждая группа должна быть разделена пустой строкой. Такой порядок помогает быстро понять, какие библиотеки используются, и позволяет легко ориентироваться в коде.
# Стандартные библиотеки
import os
import sys
# Третьи библиотеки
import requests
import numpy as np
# Локальные модули
from my_module import my_function
Абсолютные импорты — это указание полного пути до модуля, начиная от корня пакета. Это делает код более понятным и избегает проблем с относительными импортами, особенно в крупных проектах.
# Плохо
from .module import function
# Хорошо
from my_project.module import function
Циклические импорты — это когда два или более модуля зависят друг от друга, что может привести к ошибкам при импорте.
Чтобы избежать таких проблем:
# Плохо
# module_a.py
from module_b import function_b
# module_b.py
from module_a import function_a
# Хорошо
# module_a.py
def function_a():
from module_b import function_b
...
Импортируйте только те модули, функции или классы, которые действительно будут использованы в коде. Это улучшает производительность и делает код чище.
# Плохо
import math
# Хорошо
from math import sqrt
Если библиотека часто используется в коде, имеет смысл использовать псевдонимы, чтобы сделать код компактным.
# Хорошо
import numpy as np
import pandas as pd
# Плохо
import numpy
import pandas
В случае, если библиотека может не быть установлена в окружении, полезно обрабатывать ошибки импорта, чтобы избежать сбоев в работе программы.
try:
import some_library
except ImportError:
print("Не удалось импортировать some_library. Убедитесь, что она установлена.")
Библиотека питониста #буст