ОПТОСОЗ 8: как следует группировать будущий импорт?
по данным PEP 8:
импорт должен быть сгруппирован в следующем порядке:
- импорт стандартной библиотеки
- импорт связанных третьих лиц
- импорт локального приложения/библиотеки
вы должны поместить пустую строку между каждой группой импорта.
но он не упоминает о __future__
импорт. Должен!--2--> импорт сгруппировать вместе со стандартным импортом библиотеки или отдельно от стандартного импорта библиотеки.
Итак, что более предпочтительно:
from __future__ import absolute_import
import sys
import os.path
from .submod import xyz
или:
from __future__ import absolute_import
import sys
import os.path
from .submod import xyz
1 ответов
Я лично разделяю их. А __future__
импорт-это не просто привязка имени, как и другие импорта, он изменяет значение языка. С такими вещами, как from __future__ import division
модуль, скорее всего, будет работать нормально как с импортом, так и без него, но даст разные (неправильные) результаты в местах, где мне нечего сказать, чтобы посмотреть на имена, импортированные, если я хочу знать больше о том, откуда они берутся. __future__
импорт должны выделиться как можно больше.
кроме того, я вообще вроде импорт внутри группы в алфавитном порядке (не особенно хорошая причина для этого; я просто нахожу, что он имеет очень небольшие преимущества для различий и слияния ветвей) и __future__
импорт должен быть первым, поэтому я помещаю их в свою собственную группу.