Python 3.3 では不要になりましたかパッケージに __init__.py ファイルを提供しますか?
はじめに: __init__.py ファイルの役割
Python では、__init__.py ファイルの役割は、ディレクトリをパッケージとして使用すると、このディレクトリのさまざまなディレクトリとモジュールを名前空間に編成できます。 Python 2.7 以前では、パッケージを作成するには __init__.py ファイルが必要です。
Python 3.3 の __init__.py ファイル
Python 3.3 では、暗黙的な名前空間パッケージの概念が導入され、__init__.py がなくても可能になりました。も作成できます。これは、ディレクトリを名前空間パッケージとして指定できるようになり、そのディレクトリの内容をモジュール化できることを意味します。
名前空間パッケージの使用例
この暗黙的な名前空間パッケージ機能の最も一般的な使用例は、異なる場所にある複数のライブラリが親にサブパッケージを提供できるようにすることです。パッケージ 。たとえば、次の構造を提供する 2 つのライブラリ google_pubsub と google_storage があるとします。
google_pubsub/ # 包 1 google/ # 命名空间包(没有 __init__.py) cloud/ # 命名空间包(没有 __init__.py) pubsub/ # 常规包(有 __init__.py) __init__.py # 必需的,用于创建常规包 foo.py google_storage/ # 包 2 google/ # 命名空间包(没有 __init__.py) cloud/ # 命名空间包(没有 __init__.py) storage/ # 常规包(有 __init__.py) __init__.py # 必需的,用于创建常规包 bar.py
この場合、google/ ディレクトリと google/cloud/ ディレクトリは名前空間パッケージである必要があるため、google_pubsub と google_storage google_storage パッケージは、同じ親パッケージの下のサブパッケージとみなされます。
結論:
Python パッケージには次の 2 種類があります。
以上がバージョン 3.3 の Python パッケージには __init__.py が引き続き必要ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。