目錄
1. 模組
1.1 模組的概念
1.2 模組的兩種匯入方式
1.2.1 import 匯入
1.2.2 from...import 匯入
1.3 模組的搜尋順序(擴充套件)
1.4 原則 ---- 每乙個檔案都應該是可以被匯入的
2. 包 (package)
3. 自己發布模組 (知道)
3.1 製作發布壓縮包步驟
3.2 安裝模組
3.3 解除安裝模組
4. pip 安裝第三方模組
模組是 python 程式架構的乙個核心概念
import 模組名1, 模組名2 # 會報錯, 有波浪線, 不推薦
提示 : 在匯入模組時, 每個匯入應該獨佔一行
匯入之後,通過 模組名. 使用模組提供的工具 ---- 全域性變數 , 函式 , 類
2) 使用 as 指定模組的別名
如果模組的名字太長,可以使用 as 指定模組的名稱, 以方便在**中的使用
import 模組名1 as 模組別名
注意 :模組別名應該符合大駝峰命名法
匯入之後,不需要通過 模組名,可以直接使用模組提供的工具 ---- 全域性變數 , 函式 , 類
注意:如果兩個模組,存在同名的函式,那麼後匯入模組的函式,會覆蓋掉先導入的函式
from ky_01_測試模組1 import say_hello as dog_hello
from ky_02_測試模組2 import say_hello
say_hello()
from ky_01_測試模組1 import *
print(title)
say_hello()
wangcai = dog()
print(wangcai)
python 的直譯器在匯入模組時, 會 :
搜尋當前目錄指定模組名的檔案,如果有就直接匯入如果沒有, 再搜尋系統目錄
在開發時, 給檔案起名, 不要和系統的模組檔案 重名python 中每乙個模組都有乙個內建屬性 __file__ 可以檢視模組的完整路徑
示例:
import random
rand = random.randint(0, 10)
print(rand)
print(random.__file__)
注意: 如果當前目錄下, 存在乙個 random.py 的檔案, 程式就無法正常執行了!
實際開發場景
_name__ 屬性
在很多 python 檔案中都會看到以下格式的**:# 匯入模組
# 定義全域性變數
# 定義類
# 定義函式
# 在**的最下方
def main():
# ...
pass
# 根據 __name__ 判斷是否執行下方**
if __name__ == "__main__":
main()
或者這樣:
# 全域性變數,函式,類,注意: 直接執行的**不是向外界提供的工具!
# 檔案被匯入時, 能夠直接執行的**不需要被執行!
def say_hello():
print("hello world")
if __name__ == "__main__":
print("直接執行!!!")
print(__name__)
say_hello()
概念
好處
案例演練
新建乙個 wk_message 的包在目錄下, 新建兩個檔案 send_message 和 receive_message
在 send_message 檔案中定義乙個 send 函式
在 receive_message 檔案中定義乙個 receive 函式
在外部直接匯入 wk_message
__init__.py
# 從 當前目錄 匯入 模組列表
from . import send_message
from . import receive_message
如果希望自己開發的模組,分享給其他人, 可以按以下操作來
1) 建立 setup.py 的檔案
from distutils.core import setup
setup(name="wk_message", # 包名
version="1.0", # 版本
description="傳送資訊和接收資訊模組",
long_description="完整的描述資訊",
author="作者",
author_email="作者郵箱",
url="主頁",
py_modules=["wk_message.send_message",
"wk_message.receive_message"])
2) 構建模組 (控制台)
$ python3 setup.py build
3) 生成發布壓縮包 (控制台)
$ python3 setup.py sdist
注意: 要製作哪個版本的模組, 就使用哪個版本的直譯器
$ tar -zxvf wk_message-1.0.tar.gz
$ sudo python3 setup.py install
直接從安裝目錄下, 把安裝模組的目錄刪除就可以
$ sudo rm -r wk_message*
# 將模組安裝到 python 3.x 環境
$ sudo pip3 install pygame
$ sudo pip3 uninstall pygame
3 1 python運算元據庫(sqllite3)
查詢資料 刪除資料 簡單的sqllite 語法 文件查詢 匯入相關庫或模組 sqlite3 使用connect 連線資料庫並獲取資料庫連線物件。它提供了以下方法 使用con.cursor 獲取游標物件。使用游標物件的方法 execute executemany fetchall 等 來運算元據庫,實...
python模組基礎
容器總結 1 n的累加和 def sumton n s 0 for i in range 11 s i return s print sumton 11 print sumton 101 定義類 class people age 1 name 寶寶 def eat self print 我要吃飯!例...
Python 基礎(模組)
模組 你已經看到,你如何通過定義函式,在程式中重複使用 如果你需要重複使用,來自你自己寫的其他程式中的若干函式,怎麼辦?你可能猜到了,答案是模組。有若干撰寫模組的方法,簡單的方法就是建立乙個擴充套件名為 py的檔案。檔案中有函式和有變數。另乙個方法則是,用python源語言寫 比如,你可以用c程式語...