Python 3 のインポート ステートメントの変更点: 相対インポートとスター インポートについて
Python 3 では、インポート ステートメントに大幅な変更が加えられました。明確さを高め、潜在的な曖昧さを回避します。この記事では、これらの変更について詳しく説明し、プログラマへの影響について説明します。
相対インポート
相対インポートを使用すると、現在のモジュールの場所を基準にしてモジュールをインポートできます。 Python 2 では、相対インポートがパッケージ内で暗黙的に許可されていました。ただし、Python 3 では、この機能は非推奨になりました。絶対インポートと明示的な相対インポートがサポートされるオプションになりました。
絶対インポートでは、次のようにモジュールのフル パスを指定します。
import mypackage.mymodule
明示的な相対インポートでは、.および .. 相対パスを指定する構文。
from .mymodule import MyModule
このパスは、mymodule が現在のモジュールと同じディレクトリにあることを示します。
Star Imports
モジュールからすべての名前をインポートするスター インポートは、以前はモジュール レベルおよび Python の関数内で許可されていました。 2. ただし、Python 3 では、スター インポートはモジュール レベルのコードでのみ許可されます。
たとえば、Python 2 では、関数内で数学モジュール全体をインポートできます:
def sin_degrees(x): from math import * return sin(degrees(x))
Python 3 では、これは無効になりました。代わりに、必要な特定の関数をインポートすることもできます:
def sin_degrees(x): from math import sin, degrees return sin(degrees(x))
または、モジュール全体をモジュール レベルでインポートすることもできます:
from math import * def sin_degrees(x): return sin(degrees(x))
これらの変更は、明確さを促進し、削減することを目的としています。曖昧さを排除し、Python 3 以降のモジュールおよびパッケージ管理におけるベスト プラクティスを強制します。
以上が相対インポートとスター インポートに関する Python 3 のインポート ステートメントの主な変更点は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。