Python 3.3 の名前空間パッケージ
質問:
Python 3.3 では、依然として __init__ が必要ですか。インポート時のpyファイルパッケージは?
答え:
必ずしもそうではありません。 Python 3.3 では、「暗黙的な名前空間パッケージ」の概念が導入され、__init__.py ファイルなしでパッケージを作成できるようになりました。これらは、__init__.py ファイルを持つ通常のパッケージとは対照的に、名前空間パッケージとして知られています。
暗黙的な名前空間パッケージの使用例:
名前空間パッケージは特別に使用されます。複数のライブラリが異なる場所に存在し、同じ親パッケージにサブパッケージを提供する必要がある場合。たとえば、次の構造について考えてみましょう。
google_pubsub/ # Package 1 google/ # Namespace package cloud/ # Namespace package pubsub/ # Regular package __init__.py foo.py google_storage/ # Package 2 google/ # Namespace package cloud/ # Namespace package storage/ # Regular package __init__.py bar.py
名前空間パッケージがないと、Python は通常のパッケージを自己完結型エンティティとして扱うため、「google_pubsub」と「google_storage」の両方のインポートは失敗します。 「google」および「google/cloud」ディレクトリから __init__.py ファイルを削除すると、これらのファイルは名前空間パッケージとして解釈され、Python インタープリターがモジュールとサブパッケージを見つけて「google」パッケージに提供できるようになります。
通常のパッケージと名前空間パッケージ:
ほとんどの場合、空のパッケージを使用して通常のパッケージを使用することをお勧めします。 __init__.py ファイル。その理由は次のとおりです。
- 通常のパッケージは予測可能であり、保守が簡単です。
- 多くの Python ツールとライブラリは、通常のパッケージが適切に機能することを期待しています。
結論:
名前空間パッケージは特定のシナリオでは役立ちますが、そうすべきです。控えめに使用されます。ほとんどの開発者とユースケースでは、__init__.py ファイルを含む通常のパッケージが推奨されるアプローチです。サブパッケージを含む複数のディレクトリ間で名前空間を共有する必要がある場合にのみ、名前空間パッケージを検討してください。
参照:
- [PEP 420 - 暗黙的な名前空間パッケージ](https://www.python.org/dev/peps/pep-0420/)
- [Python ドキュメント - 通常のパッケージ](https://docs.python.org/3/reference/ import.html#packages)
- [Python ドキュメント - 名前空間パッケージ](https://docs.python.org/3/reference/import.html#namespace-packages)
- [Python のインポート システムにおける不注意者の罠](https://www.python. org/doc/essays/import-traps/)
以上がPython 3.3 のパッケージには `__init__.py` ファイルが必要ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

Pythonは、データサイエンス、Web開発、自動化タスクに適していますが、Cはシステムプログラミング、ゲーム開発、組み込みシステムに適しています。 Pythonは、そのシンプルさと強力なエコシステムで知られていますが、Cは高性能および基礎となる制御機能で知られています。

2時間以内にPythonの基本的なプログラミングの概念とスキルを学ぶことができます。 1.変数とデータ型、2。マスターコントロールフロー(条件付きステートメントとループ)、3。機能の定義と使用を理解する4。

Pythonは、Web開発、データサイエンス、機械学習、自動化、スクリプトの分野で広く使用されています。 1)Web開発では、DjangoおよびFlask Frameworksが開発プロセスを簡素化します。 2)データサイエンスと機械学習の分野では、Numpy、Pandas、Scikit-Learn、Tensorflowライブラリが強力なサポートを提供します。 3)自動化とスクリプトの観点から、Pythonは自動テストやシステム管理などのタスクに適しています。

2時間以内にPythonの基本を学ぶことができます。 1。変数とデータ型を学習します。2。ステートメントやループの場合などのマスター制御構造、3。関数の定義と使用を理解します。これらは、簡単なPythonプログラムの作成を開始するのに役立ちます。

10時間以内にコンピューター初心者プログラミングの基本を教える方法は?コンピューター初心者にプログラミングの知識を教えるのに10時間しかない場合、何を教えることを選びますか...

fiddlereveryversings for the-middleの測定値を使用するときに検出されないようにする方法

Python 3.6のピクルスファイルのロードレポートエラー:modulenotFounderror:nomodulenamed ...

風光明媚なスポットコメント分析におけるJieba Wordセグメンテーションの問題を解決する方法は?風光明媚なスポットコメントと分析を行っているとき、私たちはしばしばJieba Wordセグメンテーションツールを使用してテキストを処理します...


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

メモ帳++7.3.1
使いやすく無料のコードエディター

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン
