モジュールとパッケージの概念

1787 ワード

モジュールとは
モジュールはPythonファイルです.pyの最後に、Pythonオブジェクト定義とPython文が含まれています.
解釈器には内蔵モジュール(例えばtime、sysモジュールなど、c言語で実現される)があり、見つかるのは内蔵モジュール(例えばre、osモジュールなど)ではありません.
importはまず内蔵モジュールを探してから実行ファイルパスの下のモジュールを探してpythonに付属しているものを探します
import:1、対応ファイル2の実行、変数名の導入(ステップ)
注意:importファイルの後にファイルはメモリにキャッシュされ、importは何度もimportと同じファイルである可能性があります.
importモジュール名、モジュール名#は複数のモジュールにインポートしてこのように書くことができます
fromモジュール名import関数名#インポートに必要な関数
fromモジュール名import*#推奨しません
複数のpyファイルが互いに呼び出され、システムはファイルを実行するパス(sys.path)しか認識していないため、呼び出すときにそのパスに従ってファイルを探し、ある下位ディレクトリファイルを呼び出すには平級ディレクトリから下位ディレクトリを呼び出す必要がある.
#my_lesson    bin.py   ,     my_lesson    main.py
from my_lesson import main


バッグとは?
パッケージはフォルダですが、そのフォルダの下には存在する必要があります.init__.pyファイル、同時にパッケージの下にパッケージを含めることもできます
#          ,    cal.py      
from web.web1.web2 import cal        #   cal.py   
from web.web1.web2.cal import add    #cal.py     add   

from web.web1 import web2      #  web2 __init__.py   (          )




パッケージ内参照
サブパッケージ内の参照の場合は、echoモジュールを例に、相対的な位置でサブモジュールを導入できます.次のように参照できます.
1 from . import reverse              #         reverse
2 from .. import frormats            #         frormats
3 from ..filters import equalizer    #      filters       equalizer
 

__name__:実行ファイルでは「_main_」に等しく、呼び出しファイルで呼び出しモジュール名に等しい
1、from web.web1.cal import add
# cal print(__name__)     web.web1.cal
2、from web.web1 import cal
# cal print(__name__)     web.web1.cal

__file__:ファイル名(相対パスを返しますがpycharmでは絶対パスを返します)
#         
import os,sys
BASE_DIR=os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(BASE_DIR)
print(sys.path)

#