17 模組和包

2021-10-19 06:58:08 字數 4385 閱讀 4827

模組

模組的概念

模組的兩種匯入方式

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_messagereceive_messagesend_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.如果當前檔案中的變數或者函式...