我有时不得不写一些类似的东西
from blqblq.lqlqlqlq.bla import fobarbazbarbarbazar as foo
from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas
这需要80多个字符。这种情况在官方 Python 编码风格指南中没有涉及。如何以 python 方式编写此类导入?
我有时不得不写一些类似的东西
from blqblq.lqlqlqlq.bla import fobarbazbarbarbazar as foo
from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas
这需要80多个字符。这种情况在官方 Python 编码风格指南中没有涉及。如何以 python 方式编写此类导入?
http://www.python.org/dev/peps/pep-0008/#maximum-line-length
Python 标准库是保守的,要求将行数限制为 79 个字符(文档字符串/注释限制为 72 个)。
包装长行的首选方法是在括号、方括号和大括号内使用 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
( import * 不是一个选项 ;-)
相反,应该可以使用 Python 的标准分组机制(括号)来编写 import 语句:
from Tkinter import (Tk, Frame, Button, Entry, Canvas, Text,
LEFT, DISABLED, NORMAL, RIDGE, END)
这部分提案从一开始就获得了 BDFL 的批准。
Python 2.4 添加了括号支持。