模組
模組的概念
模組的兩種匯入方式
import
匯入
import 模組名1,模組名2
import 模組名1
import 模組名2
使用as
指定模組的別名
如果模組的名字太長,可以使用as
指定模組的名稱,以方便在**中的使用
import 模組名 as 模組別名
注意:模組別名應該符合大駝峰命名法(單詞之間首字母大寫,單詞與單詞之間不使用下劃線)
from...import
匯入
# 從模組匯入某乙個工具
from 模組名 import 工具名
注意:
如果兩個模組,存在同名的函式,那麼後匯入模組的函式,會覆蓋掉先導入的函式模組的搜尋順序
python
的直譯器在匯入模組時,會:
搜尋 當前目錄 指定模組名的檔案,如果有就直接匯入
如果沒有,再搜尋系統目錄
在開發時,給檔案起名,不要和系統的模組檔案重名
python
中每乙個模組都有乙個內建屬性__file__
可以檢視模組的文章路勁
示例
import random
print(random.__file__) # 檢視模組的位置
rand = random.randint(0,10)
print(rand)
注意,如果當前目錄下,存在乙個random.py
的檔案,程式就無法正常執行了!
每個檔案都可以被匯入
實際開發場景
__name__屬性
在很多python
檔案中都會看到下方格式的**
# 匯入模組
# 定義全域性變數
# 定義類
# 定義函式
# 在**的最下方
def main():
...pass
# 根據__name__ 判斷是否執行下方**
if __naem__ == "__main__"
main()
包
好處
案例演練
新建乙個hm_message
的包
在目錄下,新建兩個檔案send_message
和receive_message
在send_message
檔案中定義乙個send
函式
在receive_message
檔案中定義乙個receive
函式
在外部直接匯入hm_message
的包
__init__.py
# 從當前目錄匯入模組列表
from . import send_message
from . import receive_message
發布模組
製作發布壓縮包步驟
建立setup.py
的檔案
from distutils.core import setup
setup(name="hm_message", # 包名
version="1.0", # 版本
description="itheima's 傳送和接收訊息模組", # 描述資訊
long_description="完整的傳送和接收訊息模組", # 完整描述訊息
author="itheima", # 作者
author_email="[email protected]", # 作者郵箱
url="www.itheima.com", # 主頁
py_modules=["hm_message.send_message",
"hm_message.receive_message"]) # 壓縮包中包含的模組名稱
構建模組
python3 setup.py build
生成發布壓縮包
python3 setup.py sdist
注意:要製作哪個版本的模組,就使用哪個版本的直譯器執行
# 使用tree命令可以看到當前目錄下生成了兩個目錄
# build和dist,dist目錄裡面已經存在乙個壓縮好的包了
├── build
│ └── lib
│ └── hm_message
│ ├── __init__.py
│ ├── receive_message.py
│ └── send_message.py
├── dist
│ └── hm_message-1.0.tar.gz
├── hm_message
│ ├── __init__.py
│ ├── __pycache__
│ │ ├── __init__.cpython-37.pyc
│ │ ├── receive_message.cpython-37.pyc
│ │ └── send_messge.cpython-37.pyc
│ ├── receive_message.py
│ └── send_message.py
├── manifest
└── setup.py
安裝模組# 將上面生成的壓縮包解壓然後安裝
tar xf hm_message-1.0.tar.gz
cd hm_message-1.0
python3 setup.py install
輸出資訊:
running install
running build
running build_py
running install_lib
running install_egg_info
removing /usr/local/python37/lib/python3.7/site-packages/hm_message-1.0-py3.7.egg-info
writing /usr/local/python37/lib/python3.7/site-packages/hm_message-1.0-py3.7.egg-info
# 安裝完成之後可以直接在ipython中呼叫
in [1]: import hm_message
in [2]: hm_message.send_message.send("hello")
正在傳送 hello...
in [3]: test = hm_message.receive_message.receive()
in [4]: print(test)
這是一條來自100xx的資訊
in [5]:
解除安裝模組# 直接從安裝目錄下,把安裝模組的目錄刪除就可以
# 第三方安裝的模組存放位置一般放在 `site-packages`
cd /usr/local/python37/lib/python3.7/site-packages/
rm -rf hm_message*
pip安裝第三方模組
pip
是乙個現代的,通用的python
包管理工具
安裝和解除安裝命令
pip3 install pygame
pip3 uninstall pygame
pip3 install -i 模組名 --trusted-host pypi.douban.com
python17 模組和包
如何定義模組?語法import module name module name.function name module name.class name 案例 01 02 p01,p02 import 模組 as 別名 from module name import func name,class ...
python 模組和包 python模組和包
一.模組 python 模組 module 是乙個 python 檔案,以 py 結尾,包含了 python 物件定義和python語句。模組能定義函式,類和變數,模組裡也能包含可執行的 二.匯入模組 1.語法 import模組名from 模組名 import功能名from 模組名 import i...
Python模組 包和內建模組
模組命名規範 匯入方式 注意 1 模組名要符合識別符號命名規範 2 匯入模組會將模組中的 執行一遍,只有第一次匯入生效 import 模組名 使用方式 模組名.變數或 模組名.函式名 import 模組名 as 別名 import 模組1,模組2 from.import.如果當前檔案中的變數或者函式...