GUI涉及到挺多的狀態(tài)改變 , 以前一直用 if...else 來判斷 , 最近讀了設計模式 ,發(fā)現(xiàn)有個狀態(tài)模式 , 隨后發(fā)現(xiàn)了狀態(tài)機這個東西 .
python的狀態(tài)機模塊挺多的 , 不過好像很多都不更新了.
推薦2個狀態(tài)機模塊 , 但是也沒有太深入的使用經(jīng)驗 , 就跑跑例子 , 以后有更詳細的pyqt例子再補上 .
1: pip install python-statemachine
官方例子 : https://github.com/fgmacedo/python-statemachine
2.pip install state_machine
官方例子 : https://github.com/jtushman/state_machine
1的 最近一次更新在6個月以前 , 使用類繼承
和mixin
方式 , 不過有些地方不如2個人性化;
2的設計更人性化一些 , 包括狀態(tài)改變before
和 after
, 不過由于是裝飾器實現(xiàn)的動態(tài)增加屬性 , 有些地方編輯器智能提示可能就靠不上了.
兩者實現(xiàn)實現(xiàn)方式不一樣 , 有興趣可以讀讀源碼 .