1、什麼是模組
模組就是乙個.py的檔案
2、為什麼要使用模組?
最開始的程式(沒有任何組織)----> 函式------>類----->模組------>包 為了讓程式的組織結構更加靈活清晰,降低耦合性、方便管理;
3、如何使用模組
1、import:只能匯入在當前目錄、和內建的模組,使用模組裡的內容需要 模組.來呼叫;
2、from...import:可以匯入不是同級目錄的模組,匯入模組之後,可以直接呼叫模組裡的內容;
3、匯入模組做的3件事情
#匯入模組第一件事情 建立命名空間,用來存放模組檔案中定義的名字
#第二件事情基於剛剛建立的命名空間,找執行一遍模組檔案裡的內容
#第三件事情spm.操作命名空間模組裡的內容
4、模組的搜素路徑
總結模組的查詢順序是:記憶體中已經載入的模組--------->內建模組------------>sys.path路徑中包含的模組(sys.path包含當前目錄)
二、包1、什麼是包?
包是一種通過使用『.模組名』來組織python模組命名空間的方式。本質就乙個包含__init__檔案的目錄
無論是import形式還是from...import形式,凡是在匯入語句中(而不是在使用時)遇到帶點的,都是關於 包才有的匯入語法
from .auth.plugins.core import create,userauthinfo
# 在 .(當前路徑)auth(auth包).plugins(包).core(模組) import( create,userauthinfo)屬性 .左邊的都是包 最後乙個可以是模組
2、使用包
import (import包名.包名.包名.最後是模組)
importglance.db.models
glance.db.models.register_models('mysql')
from (包名.包名)... import ...(import後面的是模組)
from bao.bao1 import *
如果import後面不指定乙個模組名,只會執行包下的__init__檔案
會執行包下的__init__檔案定義的__all__=[x,y.z]的內容
from glance.db importmodels
models.register_models('mysql')from glance.db.models importregister_models
register_models('mysql')
3、包裡的__init__.py檔案
#在其他模組 匯入import keystone包的時候,會首先執行keystone包下的__init__檔案。
# 如果在__init__檔案匯入了auth.(包)plugins.(包)core(模組) import create,userauthinfo(方法)
# 那麼 import keystone 就可以直接執行 keystone子包下的 模組和模組裡的方法了
4、絕對匯入和相對匯入
絕對匯入:以glance作為起始
相對匯入:用.或者..的方式最為起始(只能在乙個包中使用,不能用於不同目錄內)
在glance/api/version.py#絕對匯入
from glance.cmd importmanage
manage.main()#相對匯入
from ..cmd importmanage
manage.main()
5、單獨匯入
#在與glance同級的test.py中
importglance
glance.cmd.manage.main()'''執行結果:
attributeerror: module 'glance' has no attribute 'cmd''''
Python之包的使用
包 初期理解為資料夾,資料夾包含 init py初始化檔案 包是一種管理python檔案 模組 命名衝突的形式,採用 點模組的名稱 特點 不需要擔心不同的檔案或者模組之間命名衝突 主要是根據同名檔案不同路徑 注意 普通的資料夾 目錄 不能是python中真正意義上的包,需要在資料夾或者目錄下出現乙個...
Python對於包的使用
隨著對python學習的深入,慢慢就會成長起來,這時薪水也會水高船漲。這是因為你的 越寫越多,積累各種 模組也越來越多,對於老闆布置的任務也越來越得心應手,對於客戶提出的要求也越來越隨心所欲。乙個成長起來的程式設計師,與初入門的程式設計師的區別在 呢?顯然不僅僅是薪水的差別,關鍵還是能力的差別。當然...
使用pip管理Python包
pip install 包名 安裝指定的包 pip uninstall 包名 刪除指定的包 pip install upgrade pip user 更新pip pip v 檢視pip版本 pip list 顯示已經安裝的包 pip freeze 顯示已經安裝的包,並以指定的格式顯示 pip fre...