3 11模組和包

2022-09-13 23:18:26 字數 3360 閱讀 9582

模組是 python 程式架構的乙個核心概念

1)import 匯入

python import 模組名1, 模組名2

python import 模組名1 import 模組名2

使用as指定模組的別名

如果模組的名字太長,可以使用as指定模組的名稱,以方便在**中的使用

python import 模組名1 as 模組別名

注意:模組別名應該符合大駝峰命名法

2)from...import 匯入

```python

from 模組名1 import 工具名 ```

注意

如果兩個模組,存在同名的函式,那麼後匯入模組的函式,會覆蓋掉先導入的函式

from...import *(知道)

```python

from 模組名1 import * ```

注意

這種方式不推薦使用,因為函式重名並沒有任何的提示,出現問題不好排查

python的直譯器在匯入模組時,會:

搜尋當前目錄指定模組名的檔案,如果有就直接匯入

如果沒有,再搜尋系統目錄

在開發時,給檔案起名,不要和系統的模組檔案重名

python中每乙個模組都有乙個內建屬性__file__可以檢視模組完整路徑

示例

```python import random

rand = random.randint(0, 10)

print(rand)

注意:如果當前目錄下,存在乙個random.py的檔案,程式就無法正常執行了!

實際開發場景

__name__屬性

在很多python檔案中都會看到以下格式的**

```python

def main(): # ... pass

ifname== "main": main()

好處

新建乙個hm_message

在目錄下,新建兩個檔案send_messagereceive_message

send_message檔案中定義乙個send函式

receive_message檔案中定義乙個receive函式

在外部直接匯入hm_message的包

```python

from . import sendmessage from . import receivemessage ```

1) 建立 setup.py

```python from distutils.core import setup

setup(name="hmmessage", # 包名 version="1.0", # 版本 description="itheima's 傳送和接收訊息模組", # 描述資訊 longdescription="完整的傳送和接收訊息模組", # 完整描述資訊 author="itheima", # 作者 authoremail="[email protected]", # 作者郵箱 url="www.itheima.com", # 主頁 pymodules=["hmmessage.sendmessage", "hmmessage.receivemessage"])

有關字典引數的詳細資訊,可以參閱官方**:

2) 構建模組

bash $ python3 setup.py build

3) 生成發布壓縮包

bash $ python3 setup.py sdist

注意:要製作哪個版本的模組,就使用哪個版本的直譯器執行!

```bash $ tar -zxvf hm_message-1.0.tar.gz

$ sudo python3 setup.py install ```

解除安裝模組

直接從安裝目錄下,把安裝模組的目錄刪除就可以

python $ cd /usr/local/lib/python3.5/dist-packages/ $ sudo rm -r hm_message*

pip是乙個現代的,通用的python包管理工具

安裝和解除安裝命令如下:

```bash

$ sudo pip install pygame $ sudo pip uninstall pygame

$ sudo pip3 install pygame $ sudo pip3 uninstall pygame ```

mac下安裝ipython

bash $ sudo pip install ipython

linux下安裝ipython

bash $ sudo apt install ipython $ sudo apt install ipython3

完全揹包 311

時間限制 3000 ms 記憶體限制 65535 kb 難度 4 描述直接說題意,完全揹包定義有n種物品和乙個容量為v的揹包,每種物品都有無限件可用。第i種物品的體積是c,價值是w。求解將哪些物品裝入揹包可使這些物品的體積總和不超過揹包容量,且價值總和最大。本題要求是揹包恰好裝滿揹包時,求出最大價值...

python 模組和包 python模組和包

一.模組 python 模組 module 是乙個 python 檔案,以 py 結尾,包含了 python 物件定義和python語句。模組能定義函式,類和變數,模組裡也能包含可執行的 二.匯入模組 1.語法 import模組名from 模組名 import功能名from 模組名 import i...

第二模組 3 11 閉包 是什麼東西

def outer name haha def inner print inner name return inner 注意這裡只是返回inner的記憶體位址,並未執行func outer 返回的是inner 的記憶體位址,inner func 相當於執行的是inner 關於閉包,即函式定義和函式表...