[oeasy]python0141_自制模塊_module_reusability_復(fù)用性
自制包內(nèi)容
回憶上次內(nèi)容
上次導(dǎo)入了外部的py文件
不能 直接使用 my_module.py文件中的變量
只要加
my_module.
作為前綴就可以導(dǎo)入一個(gè)自己定義的模塊
import my_module
可以使用my_module中的變量
直接導(dǎo)入導(dǎo)入變量、函數(shù)
導(dǎo)入變量并重命名
可以導(dǎo)入my_module.pi 并作為pi變量使用
from my_module import pi
from my_module import pi as my_module_pi
上次那個(gè)蘋果香蕉統(tǒng)計(jì)程序
能封裝成文件模塊
再導(dǎo)入么???
我們來改造原始的 apple.py
建立文件夾

進(jìn)入文件夾
準(zhǔn)備編輯
我想要把原來的apple.py拆成立兩個(gè)py文件
負(fù)責(zé)計(jì)算水果總量
并輸出最終水果總數(shù)
負(fù)責(zé)輸入 兩個(gè)數(shù)字
分別是
蘋果的數(shù)量
香蕉的數(shù)量
input.py
output.py
那python里面
有沒有現(xiàn)成的 input和output 模塊呢?
嘗試修改
別重名了!

看起來沒有默認(rèn)的input和output模塊
不怕模塊重名了
不過input好像是很重要的函數(shù)的名字

output.py 這個(gè)名字可以放心用
input 這個(gè)名字修改為 get_fruits.py
拆分文件
vi -o get_fruits.py output.py
進(jìn)入vim后

:windo r ../apple.py
../apple.py
上一層目錄之下的apple.py
在兩個(gè)窗口中都讀取

編輯
ctrl+j、ctrl+k
可以切換當(dāng)前活動(active)窗口
修改代碼 如下圖所示

注意這里是
:wa|!python3 %
w
ritea
ll changed buffers把所有修改了的緩存都存盤
:wa
的意思是然后再用python3來運(yùn)行
運(yùn)行結(jié)果
運(yùn)行輸入部分的環(huán)節(jié)時(shí)
沒有問題
運(yùn)行輸出部分的環(huán)節(jié)時(shí)
出錯了

輸入沒有問題
但是參數(shù)a、b
好像沒傳過去?
調(diào)試程序
從get_fruits.py到output.py的過程中
輸出看看
好像沒有傳遞成功?
到底
a
是多少呢?

給正確數(shù)據(jù)

a 根本沒有被聲明!
找到a
a 不認(rèn)
a 是 getfruit 這個(gè)模塊(module)里的變量
給a加上namespace
get_fruits.a 認(rèn)么?

上碼
再戰(zhàn)

這次認(rèn)了
現(xiàn)在需要的就是賦值了
最終

錄入數(shù)據(jù)

成功
我們真的自制了一個(gè)輸入模塊
為什么要把一個(gè)完成的程序
拆成兩個(gè)模塊呢?
復(fù)用性Reusability
get_fruits.py作為 被導(dǎo)入的模塊
可以 導(dǎo)入統(tǒng)計(jì)程序中 計(jì)算水果總量
也可以 導(dǎo)入計(jì)價(jià)程序中 計(jì)算水果價(jià)格
還可以 導(dǎo)入比較程序中 比較哪種水果更多

代碼 可以在不同的模塊之間復(fù)用
以前用過什么 可復(fù)用的代碼 嗎?
復(fù)用的模塊
有個(gè)模塊 我們經(jīng)常使用
time

我們可以感覺到 python 的可擴(kuò)展性
從各種 python 程序
到底層的 python 各種輔助模塊
python 代碼復(fù)用就是這么容易
這才是打一場人民戰(zhàn)爭的基礎(chǔ)
如今我們也寫了自己的python模塊
這兩個(gè)py文件
get_fruits.py
output.py
之間是什么關(guān)系呢?
結(jié)構(gòu)
總共兩個(gè)python文件
output.py 是主模塊
get_fruits.py 是被引用的模塊

運(yùn)行output.py主模塊的時(shí)候
先錄入
導(dǎo)入了 被引用的get_fruits.py
然后輸出
如何理解 導(dǎo)入 呢?
英文
import 導(dǎo)入
export 導(dǎo)出
詞根port 本意為港口
總結(jié)
這次把 apple.py 拆分了
輸入
主函數(shù)
拆成了
使用 引用模塊中變量的時(shí)候
get_fruits.a
get_fruits.b
要使用上包名
最終
拆分代碼 成功!
可以將程序 拆分成
輸入
輸出
然后再由主函數(shù)調(diào)用嗎???
下次再說????
藍(lán)橋->https://www.lanqiao.cn/courses/3584
github->https://github.com/overmind1980/oeasy-python-tutorial
gitee->https://gitee.com/overmind1980/oeasypython