モジュールをインポートする際にベストプラクティスに固執しようとしていますが、これについてPEP8が何を言っているのか理解しようとしています。PEP8のインポート規則
私のフレームワークは100のクラスと数十のパッケージを持っているとしましょう。例えば、PyQt5やsympyは良い候補になるでしょう...このセットの中で何が最良の選択でしょうか?
a)にインポートし、すべて
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
状況によって異なります。 (a) - インタラクティブなセッションで試してみると、私は 'from PyQt5 import Qt'を使うことを好みます(これは* 1つの名前空間内のすべて*)。私は、コーディングの実践がpep8とよく似ているかどうかは特に気にしない(私は彼らが主にそうだと思うが)。 pep8が言いたい最も重要なことは、「いつ矛盾するかを知る - 時にはスタイルガイドの推奨事項が適用されない場合があります。 – ekhumoro