導入import 回憶上次内容
- 上次學習了
- try
- except
- 注意要點
- 半角冒号
- 縮進
- 輸出錯誤資訊
- 有錯就報告
- 不要隐瞞
- 否則找不到出錯位置
- 還可以用traceback把
- 系統報錯資訊原樣輸出
- 但是代碼量好多啊
- 10多 行了
- 可以把他輸入部分和輸出部分麼?
- 我們先試試
- 怎麼引用 其他的py檔案
建構環境
- 先建立一個namespace檔案夾
- 然後進入這個檔案夾
- 建立兩個檔案
- 被引用子產品
- my_module.py
- 主體程式
- oeasy.py
添加圖檔注釋,不超過 140 字(可選)
- 然後進去
- 編輯這兩個檔案
- vi -o my_module.py oeasy.py
- -o 是分視窗編輯檔案
效果
- 結果如下圖所示
添加圖檔注釋,不超過 140 字(可選)
- oeasy.py中輸入
- import my_module
- my_module.py中輸入
- print("in another")
儲存并運作
- ctrl+k 切換到上方windows
- ctrl+j 切換到下方windows
添加圖檔注釋,不超過 140 字(可選)
- :wqa
- 全部儲存并退出
- w 的意思是先儲存
- q 退出vim
- a 代表 all buffers 所有緩存
運作結果
- 運作的是oeasy.py
- 輸出了"i am my_module.py"
- 這說明
- 導入成功了
添加圖檔注釋,不超過 140 字(可選)
- 運作的是
- oeasy.py
- oeasy.py中導入了
- my_module.py
- my_module.py中
- 輸出了 "i am my_module.py"
- 通過導入my_module.py
- 執行了其中的代碼
- 導入對應的關鍵詞import
- 應該如何了解呢?
import
- 進口(import)
- 這裡指的是導入子產品
- 這也是python強大之處
- 可以導入各種使用的包來使用
添加圖檔注釋,不超過 140 字(可選)
- 可以導入多個檔案嗎?
導入多個檔案
- 上圖建議的是
- 不同子產品分行導入
添加圖檔注釋,不超過 140 字(可選)
- 導入除了可以調用對方代碼
- 還能做什麼呢?
嘗試引用包内變量
添加圖檔注釋,不超過 140 字(可選)
- 可以在my_module.py中定義變量
- 在oeasy.py中引用嗎?
嘗試運作
添加圖檔注釋,不超過 140 字(可選)
- pi沒有找到
添加圖檔注釋,不超過 140 字(可選)
- 不慌
- 好飯不怕晚
- 不是把這些位元組碼都運作了麼?
- 但是這裡面有個作用域(namespace)的問題
- i 屬于 my_module.py
- 而不屬于oeasy.py
- 是以直接運作找不到i
- 那怎麼辦?
修改
- 隻要說清楚這個i來自于my_module就可以了
- 用一個點(.)
- 就可以說明從屬關系
- 點(.)的意思是的
- 在 my_module . pi
- 就是 在my_module 的 i
添加圖檔注釋,不超過 140 字(可選)
- :wa
- write all
- 兩個檔案都儲存
- :!python3 %
- 用外部指令python3運作目前檔案
添加圖檔注釋,不超過 140 字(可選)
- pi找到了
- 在my_module.py中
- pi就是一個标準的變量聲明指派
- 如果我就想在 oeasy.py 中直接使用 pi
- 可能麼?
修改
- 聲明了一個變量pi
- 并把mymodule.i的值賦給他
添加圖檔注釋,不超過 140 字(可選)
- 還有其他寫法嗎?
from...import...
- 這句話好像好使
添加圖檔注釋,不超過 140 字(可選)
- local()函數
- 可以檢視本地局部變量
添加圖檔注釋,不超過 140 字(可選)
- 本地變量會撞車嗎?
撞車(local name crash)
添加圖檔注釋,不超過 140 字(可選)
- 是以要特别注意盡量
- 不要使用from xxx import *
- 這種容易撞車的語句
添加圖檔注釋,不超過 140 字(可選)
- 撞車是什麼樣子的!?
- 可以欣賞一下車禍現場嗎?
車禍現場
添加圖檔注釋,不超過 140 字(可選)
- my_module.pi 被 math.pi 撞飛了
添加圖檔注釋,不超過 140 字(可選)
- 這其實也是名字空間(namespace)的意義
namespace
- 名字空間是個好主意!
添加圖檔注釋,不超過 140 字(可選)
- 那可以給導入進來的變量改名麼?
from ... import ... as ...
添加圖檔注釋,不超過 140 字(可選)
- 可以的
- 這樣可以把變量名更明确一點
- 其實就是又起了個名字
- 然後進行指派
添加圖檔注釋,不超過 140 字(可選)
- 任務達成!!!
- 總結一下 !✿✿ヽ(°▽°)ノ✿
總結
- 我們這次導入了外部的py檔案
- import my_module
- 導入一個自己定義的子產品
- 可以使用my_module中的變量
- 不能 直接使用 my_module.py檔案中的變量
- 隻要加my_module.作為字首就可以
- 直接導入導入變量、函數
- from my_module import pi
- 可以導入my_module.pi 并作為pi變量使用
- from my_module import pi as my_module_pi
- 導入變量并重命名
- 上次那個蘋果香蕉統計程式
- 能封裝成檔案子產品
- 再導入麼?
- 下次再說
- 藍橋->https://www.lanqiao.cn/courses/3584
- github->https://github.com/overmind1980/oeasy-python-tutorial
- gitee->https://gitee.com/overmind1980/oeasypython