Нет никакой разницы. Оба они функционируют точно так же.
Однако, с точки зрения стилизации, предпочтительнее, чем другое. И на этой ноте, PEP-8 for imports говорит, что вы должны сжать from module import name1, name2
на одной линии и оставить import module1
на нескольких линиях:
Yes: import os
import sys
No: import sys, os
Ok: from subprocess import Popen, PIPE
В ответ на @ teewuane свой комментарий (многократном здесь в случае комментарий будет удален):
@ inspectorG4dget Что делать, если вам нужно импортировать несколько функций из одного модуля , и это заканчивается тем, что эта линия длиннее 80 символов? Я знаю , что 80-значный символ «когда он делает код более читаемым», но я все еще задаюсь вопросом, есть ли более аккуратный способ сделать это. И я не хочу сделать из импорта foo *, хотя я в основном импортирую все.
Проблема здесь в том, что делать что-то вроде следующего может превысить предел 80 обугленного:
from module import func1, func2, func3, func4, func5
к этому, у меня есть два ответа (я не вижу PEP8 чрезмерно ясно об этом) :
разбить его на два импорта:
from module import func1, func2, func3
from module import func4, func5
Это имеет тот недостаток, что если module
удаляется из кодовой базы или иным образом реорганизован, то обе строки импорта должны быть удалены. Это может оказаться болезненным
Split линия:
Чтобы смягчить вышеупомянутую озабоченность, это может быть разумнее сделать
from module import func1, func2, func3, \
func4, func5
Это приведет к ошибке, если вторая линия не удаляется вместе с первым, сохраняя при этом сингулярное заявление о ввозе
Первый может быть чуть-чуть быстрее, в зависимости от реализации интерпретатора, я думаю, но я не могу действительно думают о любом другом способе, которым они отличались бы от перспективы пользователя языка. –