python的模塊和包
模塊:.py結(jié)尾的 分為系統(tǒng)模塊( logging泵三,json哪雕,time) 和自定義模塊
其中自定義模塊用來定義一些類或方法或變量等
例如定義一個My.py的文件如下
#定義類
class MyException():
pass
# 定義函數(shù)
def func():
print('我是一個模塊中的func函數(shù)')
# 定義變量
love = 'iloveyou'
使用它時只需要import My后就可以 obj = My.MyException() My.func() print(My.love).....
- 模塊中的測試代碼
- 自定義模塊中谴垫,通常只是去定義類或函數(shù)你画,變量盗蟆,等躁劣,并不調(diào)用
- 如果在自定義模塊中,想要寫一些測試代碼邮屁,在當(dāng)前模塊作為主程序使用時執(zhí)行,
- 而作為模塊被別的程序?qū)霑r不執(zhí)行菠齿,那么可以把測試代碼寫到 下面代碼塊中
if __name__ == '__main__':
print('這個位置寫的代碼只有當(dāng)前腳本被直接運行時觸發(fā)')
# 特殊的變量 __name__
# __name__ 這個變量佑吝,在當(dāng)前腳本作為模塊被別的程序?qū)胧?__name__的值 是當(dāng)前這個模塊的名稱
#在當(dāng)前腳本被作為主程序直接由python解析運行時,__name__的值 是 '__main__'
name = __name__
print(name)
包:可以理解為是一個文件夾绳匀,里面包含了多個python文件芋忿。
- 結(jié)構(gòu)
package/ # 包(文件夾)
├── init.py # 包中的初始化文件
├── a.py # 包中的模塊
├── b.py
└── ps/ # 子包
├── init.py
├── c.py
└── d.py
- 導(dǎo)入方式總結(jié):
絕對導(dǎo)入
import 模塊
import 包
import 包.模塊
from 模塊 import 內(nèi)容
from 包 import 模塊
from 包.模塊 import 內(nèi)容
相對導(dǎo)入
from .包名/模塊名 import 模塊/內(nèi)容
from ..包名/模塊名 import 模塊/內(nèi)容
. 代表當(dāng)前層
..代表上一級
搜索路徑
主要的搜索路徑
- 當(dāng)前導(dǎo)入模塊的程序所在的文件
- python的擴(kuò)展目錄中 C:/Users/username/AppData/local/.../Python37/lib
- python解釋器指定的其它 第三方模塊位置 /lib/sitepackages
在當(dāng)前腳本中查看 包或模塊 的 搜索路徑
import sys
print(sys.path)
sys.path.append('/Users/yc/Desktop') 可以自己定義一個路徑,加入到搜索路徑中
單入口程序是指整個程序都是經(jīng)過一個主程序文件在運行疾棵,其它程序都封裝成了包或模塊
第三方庫和虛擬環(huán)境管理
主要掌握pip工具的用法
pip install 包名(庫名) 安 裝
pip install 包名==版本 安裝指定版本
pip list 看已經(jīng)安裝的包
更換鏡像會使速度更快
掌握虛擬環(huán)境的創(chuàng)建 激活 安裝包的過程 可pip install virtualenv后進(jìn)行創(chuàng)建