2
我試圖堅持最好的做法,當涉及到導入模塊,我想了解什麼PEP8說這個。PEP8導入約定
假設我的框架有幾百個類和幾十個包。例如,PyQt5或sympy將會是很好的候選人......這套系列最好的選擇是什麼?
一)進口一切
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
print(QPoint)
print(QPixmap)
print(QApplication)
b)進口只有大包,並使用前綴爲整個應用程序
from PyQt5 import QtCore, QtGui, QtWidgets
print(QtCore.QPoint)
print(QtGui.QPixmap)
print(QtWidgets.QApplication)
c)從一個大包件導入特定的類
from PyQt5.QtCore import QPoint
from PyQt5.QtGui import QPixmap
from PyQt5.QtWidgets import QApplication
print(QPoint)
print(QPixmap)
print(QApplication)
選項a)PEP8不鼓勵b)或c)...什麼是PEP8關於它的推薦?
我個人更喜歡b)如果您使用模塊中的多個對象,則使用a)。但在PEP 8中沒有規定。 –
沒有具體的答案。如果我打算只使用每個模塊中的幾個對象,那麼我會明確地導入它們,如(c)所示。如果我使用每個模塊的很多對象,我通常使用(b)。 – Blender
這取決於上下文。我總是在應用程序中使用(c),以及(b)在教程,示例,文檔等中我從不使用(a) - 在交互式會話中進行試驗時,我傾向於使用'從PyQt5導入Qt'在單個命名空間中的所有內容)。我並不特別在乎我的編碼實踐是否與pep8完全一致(儘管我認爲他們大多是)。 pep8最重要的一點是:「知道什麼時候不一致 - 有時候風格指導建議不適用,如果有疑問,請使用您的最佳判斷」。 – ekhumoro