7.5 周遊列國實例 (1-10)
啟動 viper console 介面,console 介面顯示 prompt 時,會使用不同顏色顯示。啟動 viper console 介面時,會先檢查是否有 session 正開啟中,
若有則印出 __session__.file.path。
另外,若輸入 $self 關鍵字時,則會用到函式 keywords 檢查是否有 session 開啟,
並印出 __session__.file.path。 與 tour 2 相關,主要是 session.py 內用到了 objects.py 中的 File。
其中,File 計算與提供檔案基本資訊,例如:檔案類型,sha256 hash value,
file path 等。console 介面會 listen 使用者輸入的指令,並檢查是否為內建 modules 指令。
modules loaded 前會檢查其是否為 abstracts.py 中 Module class 的孩子,
且不是 Module class 本身。若 console 接到內建模組 fuzzy 指令,則會透過 plugins.py 載入 fuzzy 模組。
用 dict 與 inspect 實作。 inspect 取得 module object。
plugins[member_object.cmd] = dict(obj=member_object, description=member_object.description)
將相對應指令塞入 dict 的 key 值,並透過建立巢狀字典,將 obj=member_object。
開發者就可透過 module = __modules__[root]['obj']() 初始化模組的 instance。Last updated