ホームページ > バックエンド開発 > Python チュートリアル > 相対インポートとスター インポートに関する Python 3 のインポート ステートメントの主な変更点は何ですか?

相対インポートとスター インポートに関する Python 3 のインポート ステートメントの主な変更点は何ですか?

Susan Sarandon
リリース: 2024-11-28 22:26:18
オリジナル
533 人が閲覧しました

What are the Key Changes to Python 3's Import Statements Regarding Relative and Star Imports?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート