Если у вас есть хорошо написанную библиотеку, которая иногда бывает в Python, вы должны просто импортировать его и использовать его как это. Хорошо написанная библиотека имеет тенденцию брать жизнь и собственный язык, в результате получается приятный для чтения-код, где вы редко ссылаетесь на библиотеку. Когда библиотека хорошо написана, вам не нужно переименовывать или что-то еще слишком часто.
import gat
node = gat.Node()
child = node.children()
Иногда это невозможно написать так, иначе вы хотите снять вещи из библиотеки, которую вы импортировали.
from gat import Node, SubNode
node = Node()
child = SubNode(node)
Иногда вы делаете это для многих вещей, если ваша строка импорта переполнения 80 столбцов, это хорошая идея, чтобы сделать это:
from gat import (
Node, SubNode, TopNode, SuperNode, CoolNode,
PowerNode, UpNode
)
Лучшая стратегия, чтобы сохранить все эти импорта на вверху файла. Предпочтительно упорядочивается по алфавиту, сначала импортировать -значения, а затем из import -statements.
Теперь я говорю вам, почему это лучшее соглашение.
У Python вполне может быть автоматический импорт, который будет выглядеть из основного импорта для значения, если он не может быть найден из глобального пространства имен. Но это не очень хорошая идея. Я коротко объясню почему. Помимо того, что сложнее реализовать, чем простой импорт, программисты не будут так много думать о зависимостях, а узнавать, откуда вы импортировали вещи, должны быть сделаны каким-то иным способом, чем просто смотреть на импорт.
Необходимо выяснить, какие факторы являются причиной, почему люди ненавидят «из ... импорта». Некоторые плохие примеры, где вам нужно это делать, существуют, например, opengl -wrappings.
Таким образом, определения импорта действительно ценны для определения параметров программы. Это то, как вы должны их использовать. Из них вы можете быстро проверить, откуда импортирована какая-то странная функция.
См. Http://stackoverflow.com/questions/187453/import-package-vs-import-packagespecifictype – 2008-10-11 10:33:53
См. Http://stackoverflow.com/questions/186472/from-x-import-a-versus-import -x-xa – 2008-10-11 10:35:11