__pycache__ .pyc文件,中間代碼,提升python運行效率
目錄
分檔和歸類
Python項目組織結構
包
模塊
類
函數、變量
# 層級依次往下都是一對多關系
Python項目目錄結構
ProjectName 項目根目錄
pkgName 項目包
...
main.py 項目入口目錄文件
命名空間
1. 區分不同包下模塊
2. 區分不同模塊下類
3. 訪問 pkgName.modulName modulName.ClassName, 通過 . 進行訪問
區分包和普通文件夾
1. 文件夾下是否有 __init__.py 文件
2. 想導入__init__文件,則直接導入包名
__init__文件
1. 導入包、模塊、類、函數、變量都會首先執行__init__內容
2. 做包和模塊的初始化工作
3. 把模塊公共導入代碼和系統庫內容放入 __init__文件
在__init__文件中, __name__是當前包名, __package__為當前包名
對 * 導入限制
1. 放在模塊的頭頂部,限定導入的類 __all__ = ["className", ...]
2. 放在 __init__文件中,限定導入的模塊 __all__ = ["modulName", ...]
導入 import from . 分為導入本包和其他包
1. 導入其他包
import pkgName
2. 導入當前包下目錄
from . import modulName
3. 導入其他包模塊
from pkgName import modulName
4. 從當前包導入類
from .modulName import className
5. 從其他包導入類
from pkgName.modulName import className
6. 導入包是不重復,導入一個包Python會執行一次包中代碼
7. 避免循環和環路導入
相對導入 包下文件可以通過相對路徑導入, 依據包下模塊中的__name__定位
絕對導入 從頂級包開始,一直通過 . 訪問下去,必須知道頂級包位置
項目入口文件 main.py
1. 整個項目的起始執行文件,整個程序邏輯運行起始,只能通過絕對導入模塊
2. 會強行把 main文件中的 __name__ 改為 "__main__", __package__ 置為 None, __main__模塊是不存在的
把模塊當作main文件運行 python -m pkgName.modulName
-m 參數后面接收模塊的命令空間
獲取模塊內置變量 dir()
1. 當前模塊命名空間 __name__
2. 當前模塊所在包名 __package__
3. 獲取模塊注釋 __doc__ 注釋寫在模塊頭部,用於自動生成文檔
4. 獲取當前模塊絕對路徑 __file__
5. 系統自定義變量,和普通變量無區別,為了區分自定義變量和Python內置變量 __variable__
當前目錄 .
上級目錄 ..