ホームページ  >  記事  >  バックエンド開発  >  ワイルドカードのインポート: 使用するか使用しないか?

ワイルドカードのインポート: 使用するか使用しないか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-21 08:10:11815ブラウズ

Wildcard Imports: To Use or Not to Use?

ワイルドカード インポート: ベスト プラクティスへのガイド

PyQt4 import * などのワイルドカード インポートは、プログラミング コミュニティでよく議論の種になります。ただし、多くの開発者は、一般にワイルドカードのインポートを回避する必要があることに同意しています。

ワイルドカードのインポートを回避するケース

修飾名は、ベアネームよりも優先されます。 from PyQt4 import Qt ではなく from PyQt4.QtCore import Qt のような構文を使用して、インポート元のモジュールを明示的に指定することをお勧めします。修飾名を使用すると、コードの依存関係の追跡やエラーのデバッグが容易になります。

また、モジュール間の衝突のリスクも軽減されます。 2 つのモジュールが同じ名前の関数を定義している場合、あいまいさを避けるために、そのうちの 1 つを明示的にインポートする必要があります。ワイルドカード インポートを使用すると、このような衝突が見落とされやすくなり、予期しないエラーが発生します。

最後に、ワイルドカード インポートにより、コードのテストが難しくなる可能性があります。たとえば、サードパーティ ライブラリのクラスをモックする場合、そのクラスへの修飾参照があれば、モックするのが簡単です。

ワイルドカード インポートの代替

import ステートメントの行数を減らしたい場合は、モジュールのエイリアスを作成できます。たとえば、PyQt4.QtCore import Qt、QPointF、QRectF から記述する代わりに、次のように記述できます。

import PyQt4
Qt = PyQt4.QtCore

このアプローチにより、明示的に指定することなく Qt.QPointF、Qt.QRectF などを使用できるようになります。それぞれの名前を修飾します。

別のオプションは、選択的インポートを使用することです。モジュールからすべてのクラスをインポートする代わりに、必要なクラスだけをインポートできます。

from PyQt4.QtCore import QPointF, QRectF
from PyQt4.QtGui import QGraphicsItem, QGraphicsScene

これは、ワイルドカード インポートを使用するよりも冗長ですが、実際に使用するクラスのみをインポートできるという利点があります。 .

結論

ワイルドカードのインポートは魅力的かもしれませんが、一般的には推奨されません。修飾名は読みやすく、エラーが発生しにくく、テストが簡単です。 import ステートメントの行数を減らす方法を探している場合は、代わりにエイリアスの使用または選択的インポートを検討してください。

以上がワイルドカードのインポート: 使用するか使用しないか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。