Руководство по использованию оператора импорта

1

Возможный дубликат:
Должен ли я использовать "из пакетов импорта, настроек" или "из. Import utils, settings",

Каковы рекомендации по выбору между следующим при импорте из стандартной библиотеки python?:

import foo
from foo import bar

Каковы соображения? Является ли это следностью? Или просто потенциальное имя?

Если модуль имел минимальную обработку строк, будет ли это слишком далеко?

from string import split

Если программа имеет несколько модулей, будут ли результаты импорта, сделанные одним модулем, доступными для последующих модулей в программе?

Если импортированный модуль требуется только в холодном коде, считается ли он хорошей формой, чтобы этот импорт был похоронен внутри логического блока, содержащего холодный код?

  • 1
    Pep 8 содержит раздел об импорте, это хорошее место для начала.
  • 3
    Прочитайте много повторяющихся вопросов, связанных на боковой панели в разделе «Смежные вопросы».
Показать ещё 1 комментарий
Теги:

1 ответ

0
Лучший ответ

Если вы используете pyflakes, он будет жаловаться, если вы не используете вещи, которые вы импортировали.

Я нахожу, если мне нужны только одна или две функции/классы, то я их импортирую напрямую: если мне нужны партии, я могу просто использовать версию с foo.bar (foo.bar).

Стоимость. lookups, поэтому, если у вас их было много в вложенном цикле, может быть лучше импортировать функцию напрямую, или вы можете перекрыть функцию локальному имени.

import foo

def bar(baz):
    for qux in baz:
         for i in range(100000):
             foo.bar(qux, i)

Чтобы сократить время поиска:

import foo

def bar:
    foo_bar = foo.bar
    for qux in baz:
        for i in range(100000):
            foo_bar(qux, i)
  • 1
    Вы всегда можете привязать имя к локальной области, на самом деле нет необходимости делать это при импорте и загрязнять глобальную область.
  • 0
    Да, это было немного упрощением. Я обновлю ответ, чтобы отразить это.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню