Отвечая на более общий вопрос о том, когда импортировать, импорт - это зависимости. Это код, который может или не может существовать, что требуется для функционирования программы. Поэтому очень хорошая идея как можно скорее импортировать этот код, чтобы предотвратить появление немых ошибок в середине выполнения.
Это особенно верно, поскольку pypy становится более популярным, когда импорт может существовать, но не может использоваться через pypy. Намного лучше не работать раньше, чем потенциально часами в выполнении кода.
Что касается "import pandas as pd" vs "from pandas import DataFrame, TimeSeries", этот вопрос имеет несколько проблем (как и все вопросы), с гораздо более важными, чем другие. Возникает вопрос о пространстве имен, возникает вопрос о читаемости, и есть вопрос о производительности. Производительность, как утверждает Марджин, должна способствовать примерно 0,0001% решения. Читаемость должна составлять около 90%. Пространство имен только 10%, так как это можно легко смягчить.
Лично, на мой взгляд, и import X as Y
, и form X import Y
- это плохая практика, потому что явный лучше, чем неявный. Вы не хотите быть на линии 2000, пытаясь запомнить, какой пакет «calculate_mean» исходит из-за того, что он не упоминается нигде в коде. Когда я впервые начал использовать numpy, я копировал/вставлял код из Интернета и не мог понять, почему я не сделал/не смог pip install np
.Это, очевидно, не проблема, если у вас есть уже существовавшие знания о том, что «np» - это python для «numpy», но это глупое и бессмысленное замешательство для трех сохраняемых им букв. Это произошло от numpy. Используйте numpy.
Одна мысль за импорт из функции заключается в том, чтобы избежать импорта (возможно, удалённого) модуля, если функция не вызывается. – chepner