ホームページ >バックエンド開発 >Python チュートリアル >PEP 404 は Python のインポート ステートメントをどのように変更しましたか?
Python インポート ステートメントに対する PEP-404 の影響
Python Enhancement Proposal (PEP) 404 では、Python 3 のインポート ステートメントに大幅な変更が導入されました。 、モジュールの明確さと構成を強化します。 imports.
相対インポートとは何ですか?
相対インポートとは、現在のモジュールまたはパッケージに対して相対的な場所からモジュールをインポートすることを指します。 Python 2 では、暗黙的な相対インポートが許可されていましたが、Python 3 では制限されました。
相対インポートの変更
PEP-404 では、明示的な相対インポートが強制されます。モジュールは先頭に . を使用してインポートする必要があります。 (ドット) または .. (二重ドット) を使用して、現在のモジュールのディレクトリに対する相対パスを指定します。例:
from .mymodule import MyFunction # Import from within the current package from ..otherpackage import OtherClass # Import from one level up in the directory structure
スター インポートの制限
スター インポート (パッケージからすべてのサブモジュールと属性をインポートする) は、モジュール レベルのコードでのみ許可されるようになりました。以前は、関数およびクラス定義でスターのインポートが許可されていましたが、名前空間の汚染や予期しない動作を防ぐために禁止されました。
例:
Python 2 コード:
# Function-level star import def my_function(): from mymodule import * do_something_with(MyAttribute) # Class-level star import class MyClass: def __init__(self): from otherpackage import * self.other_variable = OtherVariable
Python 3 コード:
# Module-level star import import mymodule do_something_with(mymodule.MyAttribute) # Explicit import within function def my_function(): from mymodule import MyAttribute do_something_with(MyAttribute) # Explicit import within class class MyClass: def __init__(self): from otherpackage import OtherVariable self.other_variable = OtherVariable
明示的な強制によりPython 3 は、インポートとスター インポートの制限により、インポートの明確性を向上させ、名前空間の衝突を減らし、より構造化され保守しやすいコードベースを促進することを目指しています。
以上がPEP 404 は Python のインポート ステートメントをどのように変更しましたか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。