我有时必须写一些类似的东西
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
)
这是
PEP-0328
文档长导入:
目前,如果您想从模块或 套餐,你必须从几个不合口味的选项中选择一个:
写一个带有反斜杠延续的长行:
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 添加了括号支持。