Длинный импорт в Python
Мне редко приходится писать что-то вроде
from blqblq.lqlqlqlq.bla import fobarbazbarbarbazar as foo
from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas
, который занимает более 80 символов. Эта ситуация не охвачена в официальное руководство по стилю кодирования Python. Как я могу написать такой импорт pythonically?
2 ответов
http://www.python.org/dev/peps/pep-0008/#maximum-line-length
предпочтительным способом обертывания длинных строк является использование подразумеваемого Python продолжение линии внутри скобок, скобок и скобок. Длинная линия можно разбить на несколько строк, обернув выражения в скобки. Они должны использоваться вместо использования обратной косой черты для продолжения линии. Убедитесь, что отступ продолженной строки соответственно. Предпочтительное место для разрыв вокруг двоичного оператора это после оператора, а не до него.
Так что в вашем случае это может быть:
from blqblq.lqlqlqlq.bla import (
fobarbazbarbarbazar
as foo)
from matplotlib.backends.backend_qt4agg import (
FigureCanvasQTAgg
as FigureCanvas)
лично я всегда использую этот стиль, который я нахожу более читаемым с длинными строками:
# Just 1 indent
from blqblq.lqlqlqlq.bla import (
fobarbazbarbarbazar
as foo
) # end at the next line so it's always clear where what ends
from matplotlib.backends.backend_qt4agg import (
FigureCanvasQTAgg as FigureCanvas
)
это PEP8
документация на долго импорт:
В настоящее время, если вы хотите импортировать много имен из модуля или пакет, вы должны выбрать один из нескольких неприятных варианта:
напишите длинную строку с продолжениями обратной косой черты:
from Tkinter import Tk, Frame, Button, Entry, Canvas, Text, \
LEFT, DISABLED, NORMAL, RIDGE, END
написать несколько операторов импорта:
from Tkinter import Tk, Frame, Button, Entry, Canvas, Text
from Tkinter import LEFT, DISABLED, NORMAL, RIDGE, END
( импорт * не вариант ;-)
вместо этого следует использовать стандартную группировку Python механизм (скобки) для записи оператора импорта:
from Tkinter import (Tk, Frame, Button, Entry, Canvas, Text,
LEFT, DISABLED, NORMAL, RIDGE, END)
эта часть предложения была одобрена BDFL с самого начала.
поддержка круглых скобок была добавлена в Python 2.4.