Python-組織結構-目錄結構、包導入、__init__文件、模塊內置變量、* 導入限制


__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__

 

當前目錄    .

上級目錄    ..


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM