轻松搞定python中模板和包的使用
01. 模塊
1.1 模塊的概念
模塊是 Python 程序架構的一個核心概念
每一個以擴展名?py?結尾的?Python?源代碼文件都是一個?模塊
模塊名?同樣也是一個?標識符,需要符合標識符的命名規則
在模塊中定義的?全局變量?、函數、類?都是提供給外界直接使用的?工具
模塊?就好比是?工具包,要想使用這個工具包中的工具,就需要先?導入?這個模塊
1.2 模塊的兩種導入方式
1)import 導入
import 模塊名1, 模塊名2?
提示:在導入模塊時,每個導入應該獨占一行
import 模塊名1
import 模塊名2?
導入之后
通過?模塊名.?使用?模塊提供的工具?——?全局變量、函數、類
使用?as?指定模塊的別名
如果模塊的名字太長,可以使用?as?指定模塊的名稱,以方便在代碼中的使用
import 模塊名1 as 模塊別名
注意:模塊別名?應該符合?大駝峰命名法
2)from...import 導入
如果希望?從某一個模塊?中,導入?部分?工具,就可以使用?from ... import?的方式
import 模塊名?是?一次性?把模塊中?所有工具全部導入,并且通過?模塊名/別名?訪問
# 從 模塊 導入 某一個工具
from 模塊名1 import 工具名
導入之后
不需要?通過?模塊名.
可以直接使用?模塊提供的工具?——?全局變量、函數、類
注意
如果?兩個模塊,存在?同名的函數,那么?后導入模塊的函數,會?覆蓋掉先導入的函數
開發時?import?代碼應該統一寫在?代碼的頂部,更容易及時發現沖突
一旦發現沖突,可以使用?as?關鍵字?給其中一個工具起一個別名
from...import *(知道)
# 從 模塊 導入 所有工具
from 模塊名1 import *
注意
這種方式不推薦使用,因為函數重名并沒有任何的提示,出現問題不好排查
1.3 模塊的搜索順序[擴展]
Python?的解釋器在?導入模塊?時,會:
搜索?當前目錄?指定模塊名的文件,如果有就直接導入
如果沒有,再搜索?系統目錄
在開發時,給文件起名,不要和?系統的模塊文件?重名
Python?中每一個模塊都有一個內置屬性?__file__?可以?查看模塊?的?完整路徑
import random
?
# 生成一個 0~10 的數字
rand = random.randint(0, 10)
?
print(rand)
?
注意:如果當前目錄下,存在一個?random.py?的文件,程序就無法正常執行了!
這個時候,Python?的解釋器會?加載當前目錄?下的?random.py?而不會加載?系統的?random?模塊
1.4 原則 —— 每一個文件都應該是可以被導入的
一個?獨立的?Python?文件?就是一個?模塊
在導入文件時,文件中?所有沒有任何縮進的代碼?都會被執行一遍!
實際開發場景
在實際開發中,每一個模塊都是獨立開發的,大多都有專人負責
開發人員?通常會在?模塊下方?增加一些測試代碼
僅在模塊內使用,而被導入到其他文件中不需要執行
__name__?屬性
__name__?屬性可以做到,測試模塊的代碼?只在測試情況下被運行,而在?被導入時不會被執行!
__name__?是?Python?的一個內置屬性,記錄著一個?字符串
如果?是被其他文件導入的,__name__?就是?模塊名
如果?是當前執行的程序?__name__?是?__main__
在很多?Python?文件中都會看到以下格式的代碼:
# 導入模塊
# 定義全局變量
# 定義類
# 定義函數
?
# 在代碼的最下方
def main():
? ? # ...
? ? pass
?
# 根據 __name__ 判斷是否執行下方代碼
if __name__ == "__main__":
? ? main()
?
02. 包(Package)
概念
包?是一個?包含多個模塊?的?特殊目錄
目錄下有一個?特殊的文件?__init__.py
包名的?命名方式?和變量名一致,小寫字母?+?_
好處
使用?import 包名?可以一次性導入?包?中?所有的模塊
案例演練
新建一個?hm_message?的?包
在目錄下,新建兩個文件?send_message?和?receive_message
在?send_message?文件中定義一個?send?函數
在?receive_message?文件中定義一個?receive?函數
在外部直接導入?hm_message?的包
__init__.py
要在外界使用?包?中的模塊,需要在?__init__.py?中指定?對外界提供的模塊列表
# 從 當前目錄 導入 模塊列表
from . import send_message
from . import receive_message
03. 發布模塊(知道)
如果希望自己開發的模塊,分享?給其他人,可以按照以下步驟操作
3.1 制作發布壓縮包步驟
1) 創建 setup.py
setup.py?的文件
from distutils.core import setup
?
setup(name="hm_message", ?# 包名
? ? ? version="1.0", ?# 版本
? ? ? description="itheima's 發送和接收消息模塊", ?# 描述信息
? ? ? long_description="完整的發送和接收消息模塊", ?# 完整描述信息
? ? ? author="itheima", ?# 作者
? ? ? author_email="itheima@itheima.com", ?# 作者郵箱
? ? ? url="www.itheima.com", ?# 主頁
? ? ? py_modules=["hm_message.send_message",
? ? ? ? ? ? ? ? ? "hm_message.receive_message"])
?
有關字典參數的詳細信息,可以參閱官方網站:
https://docs.python.org/2/distutils/apiref.html
2) 構建模塊
$ python3 setup.py build
3) 生成發布壓縮包
$ python3 setup.py sdist
注意:要制作哪個版本的模塊,就使用哪個版本的解釋器執行!
3.2 安裝模塊
$ tar -zxvf hm_message-1.0.tar.gz?
?
$ sudo python3 setup.py install
卸載模塊
直接從安裝目錄下,把安裝模塊的?目錄?刪除就可以
$ cd /usr/local/lib/python3.5/dist-packages/
$ sudo rm -r hm_message*
3.3?pip?安裝第三方模塊
第三方模塊?通常是指由?知名的第三方團隊?開發的?并且被?程序員廣泛使用?的?Python?包 / 模塊
例如?pygame?就是一套非常成熟的?游戲開發模塊
pip?是一個現代的,通用的?Python?包管理工具
提供了對?Python?包的查找、下載、安裝、卸載等功能
安裝和卸載命令如下:
# 將模塊安裝到 Python 2.x 環境
$ sudo pip install pygame
$ sudo pip uninstall pygame
?
# 將模塊安裝到 Python 3.x 環境
$ sudo pip3 install pygame
$ sudo pip3 uninstall pygame
在?Mac?下安裝?iPython
$ sudo pip install ipython
在?Linux?下安裝?iPython
$ sudo apt install ipython
$ sudo apt install ipython3
統一聲明:關于原創博客內容,可能會有部分內容參考自互聯網,如有原創鏈接會聲明引用;如找不到原創鏈接,在此聲明如有侵權請聯系刪除哈。關于轉載博客,如有原創鏈接會聲明;如找不到原創鏈接,在此聲明如有侵權請聯系刪除哈。
————————————————
版權聲明:本文為CSDN博主「滌生手記」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/qq_26442553/article/details/94394561
總結
以上是生活随笔為你收集整理的轻松搞定python中模板和包的使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 鸡蛋和豆浆为什么不能一起吃?
- 下一篇: 蟹黄味瓜子仁适合哪些人群享用?蟹黄味瓜子