我很少寫東西像進口長在Python
from blqblq.lqlqlqlq.bla import fobarbazbarbarbazar as foo
from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas
這需要超過80個字符。 official Python coding style guide中沒有涵蓋這種情況。我如何在Python中編寫這樣的導入?
我很少寫東西像進口長在Python
from blqblq.lqlqlqlq.bla import fobarbazbarbarbazar as foo
from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas
這需要超過80個字符。 official Python coding style guide中沒有涵蓋這種情況。我如何在Python中編寫這樣的導入?
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
documentation爲長進口:
目前,如果你想從一個模塊或 包導入了很多名字,你要選擇的幾個難吃選項之一:
寫有反斜槓延續長線:
from Tkinter import Tk, Frame, Button, Entry, Canvas, Text, \
LEFT, DISABLED, NORMAL, RIDGE, END
寫多個import語句:
from Tkinter import Tk, Frame, Button, Entry, Canvas, Text
from Tkinter import LEFT, DISABLED, NORMAL, RIDGE, END
(進口*是不是一種選擇;-)
相反,它應該可以使用Python的標準分組 機制(括號內)寫的import語句:
from Tkinter import (Tk, Frame, Button, Entry, Canvas, Text,
LEFT, DISABLED, NORMAL, RIDGE, END)
該提案的這部分已從BDFL批准開始。
圓括號支持已添加到Python 2.4。
你的第二個例子違反了新的行應在開頭括號下開始的規則。這是一個可以接受的折衷方案,你如何決定繼續這條路線。 – Vorac
這實際上是在我的部分縮進時出現的錯誤,正式情況下,您應該可以不使用它(除非您的單詞長度超過80個字符,但在這種情況下,您可能無論如何都會出錯)。 – Wolph