Да, это плохая практика для импорта на уровне функций. Используя разумный импорт в верхней части модуля, вы создаете единовременную небольшую стоимость. Однако, если вы поместите импорт в функцию, вы будете нести затраты на импорт при каждом запуске этой функции. Таким образом, вместо импорта в функцию, просто импортируйте вверху модуля.
Несколько вещей, которые вы можете сделать, чтобы очистить и улучшить ваш импорт:
- Не используйте дикий импорт, например
from x import *
- Где возможно, просто используйте обычный импорт, например,
import x
- Попробуйте разбить ваш код на более мелкие модули, которые можно вызывать по отдельности, чтобы было выполнено меньше операций по импорту
Кроме того, размещение импорта в верхней части модуля является делом стиля. Есть причина, почему PEP 8 говорит, что модули нужно импортировать сверху. Это намного удобочитаемее и удобнее в обслуживании.
Наконец, некоторые операции импорта на уровне функций могут вызвать проблемы совместимости в будущем, поскольку from x import *
не является допустимым Python 3.x на уровне функций.