[python]パッケージ
参照:https://wikidocs.net/1418
✍️ 小包
🔸 パッケージ:複数のモジュールの組合せ
パッケージはポイント(.)Pythonモジュールをディレクトリ構造で管理できます.
、¥4、¥ポイント(.)使用ルートディレクトリ:最初のディレクトリ サブディレクトリ:ルートディレクトリのディレクトリ ✍️ パッケージの作成
🔷 パッケージの基本コンポーネントの準備
ルートディレクトリとサブディレクトリを作成します.pyファイルを作成します.
🔷 各ディレクトリで
🔷 .pyファイルに関数を入力
✍️ パッケージ内の関数の実行方法
パッケージechoを使用します.pyファイルのecho test関数の実行方法
パッケージ内の関数を実行するには、3つの方法があります.
🔷 echoモジュールのインポートと実行
最後のcはモジュールまたはパッケージでなければなりません.
✍️
パッケージに関する設定
パッケージに含まれるディレクトリ
前述したように
✍️ 関連パッケージ
親ディレクトリ(...)を使用して、上記のインポートを行います.
📕 関連アクセス者
関連するアクセス者は、モジュール(ファイル)内でのみ使用できます.
✍️ 小包
🔸 パッケージ:複数のモジュールの組合せ
パッケージはポイント(.)Pythonモジュールをディレクトリ構造で管理できます.
、¥4、¥ポイント(.)使用
A.B
:パッケージ名A
:AパッケージのBモジュール🔷 パッケージの基本コンポーネントの準備
ルートディレクトリとサブディレクトリを作成します.pyファイルを作成します.
🔷 各ディレクトリで
B
ファイルを作成します.🔷 .pyファイルに関数を入力
✍️ パッケージ内の関数の実行方法
パッケージechoを使用します.pyファイルのecho test関数の実行方法
パッケージ内の関数を実行するには、3つの方法があります.
🔷 echoモジュールのインポートと実行
import game.sound.echo ⬅️ game 안에 sound 안에 echo
game.sound.echo.echo_test()
👉 echo
🔷 echoモジュールが存在するディレクトリから...インポートと実行from game.sound import echo ⬅️ game 안에 sound 안에 echo라는 모듈만
echo.echo_test()
👉 echo
🔷 echoモジュールのecho test関数を直接インポートして実行from game.sound.echo import echo_test ⬅️ echo_test라는 함수만
echo_test()
👉 echo
読み込んだ関数の名前を変更して書き込むことができますfrom game.sound.echo import echo_test as e ⬅️ 이름 바꿔서 쓰겠다
e()
👉 echo
__init__.py
類似点演算子(.)インポートを使用する場合、最後のcはモジュールまたはパッケージでなければなりません.
✍️
import a.b.c
.pyの用途パッケージに関する設定
__init__
ファイルは、そのディレクトリがパッケージの一部であることを知らせる役割を果たす.パッケージに含まれるディレクトリ
__init__.py
ファイルがない場合はパッケージとして認識できません.📕
python3.3 버전부터는 __init__.py 파일이 없어도 패키지도 인식하지만
하위 버전 호환을 위해 __init__.py 파일을 생성하는 것이 안전하다.
使用__init__.py
特定ディレクトリのモジュールをインポートする場合は、以下のようにそのディレクトリの*
ファイルに入力します.__all__ = ['echo'] 👈 해당 디렉터리의 __init__.py 파일에 입력
__all__ = ['echo', 'echo2', 'echo3'] 👈 [] 안에 계속 추가 가능
__init__.py
変数を設定し、インポート可能なモジュールを定義します.前述したように
__all__
ファイルを変更して実行すると、出力に必要な結果が確認されます.from game.sound.echo import *
echo_test()
👉 echo
__init__.py
fromの最後のcがモジュールである場合、from a.b.c import *
無条件輸入.__all__
『輸入許可証管理弁法』、『輸入許可証管理弁法』、『輸入許可証管理弁法』、『輸入許可証管理弁法』、『輸入許可証管理弁法』、『輸入許可証管理弁法』、『輸入許可証管理弁法』、『輸入許可証管理弁法』、✍️ 関連パッケージ
game > graphic > render.py
sound > echo.py
graphicディレクトリのrenderの場合pyモジュール音声ディレクトリのecho.pyモジュールを使用する場合は、を表示します.pyを修正すればいいです.# render.py
from game.sound.echo import echo_test ⬅️ 추가
def render_test():
print("render")
echo_test()
from game.graphic.render import render_test
render_test()
👉
render
echo
次のように相対的にインポートすることもできます.# render.py
from ..sound.echo import echo_test ⬅️ .. : 상위 폴더로 이동
def render_test():
print("render")
echo_test()
graphディレクトリとsoundディレクトリは同じ深さです.親ディレクトリ(...)を使用して、上記のインポートを行います.
📕 関連アクセス者
from game.sound.echo import *
–親ディレクトリ__all__
– 現在のディレクトリ関連するアクセス者は、モジュール(ファイル)内でのみ使用できます.
Reference
この問題について([python]パッケージ), 我々は、より多くの情報をここで見つけました https://velog.io/@banana/Python-패키지テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol