[問題] 執行 LIST 裡的副程式

作者: martin7887 (martin)   2018-12-27 15:41:25
請問有辦法用 list 把副程式裝起來,
然後用index 的方式執行嗎?
fnList =[fn1(),fn2()]
fnList[1] #執行 fn2()
我這樣執行的結果是 fnList 裡的副程式會全部執行一次
fnList[1] 的不會執行
謝謝!
作者: wlsh5701 (舞林樹枝)   2018-12-27 15:50:00
fnList = [fn1, fn2] fnList[1]()fnList =[fn1(),fn2()] 是將 fn1, fn2 跑一遍後將回傳值放入 list 中
作者: sma1033 (死馬)   2018-12-27 16:30:00
list只是一個連結傳送門,連到你自己定義的東西
作者: cutekid (可愛小孩子)   2018-12-27 16:31:00
推 w 大,原來是這樣用!
作者: martin7887 (martin)   2018-12-27 19:05:00
非常謝謝
作者: Wizarc (Wizarc)   2018-12-27 23:13:00
新手發文,好奇這類寫法的應用
作者: jiyu520 (不要鯽魚我)   2018-12-28 13:13:00
多確定被引用或調用的變數型態,或內容噢
作者: TitanEric (泰坦)   2018-12-28 13:16:00
一樓正解 這方法另一個應用是用dict map method,就是switch case, 很好用,個人覺得可讀性,不會有太多if else補充 可讀性高
作者: Wizarc (Wizarc)   2018-12-28 14:02:00
不太了解,要執行指定的method前,不就要寫if else
作者: jiyu520 (不要鯽魚我)   2018-12-28 15:17:00
可以查一下"工廠模式"和"抽象工廠模式"1) 取出py檔內所有function的命名2) 製作一個mapping dict {'func_name': func}參考talib abstract api的做法 https://goo.gl/36fK6y
作者: extraymond (extraymond)   2017-01-05 14:32:00
設計模式好站分享,裡面的範例中幾乎都有python範例https://reurl.cc/qNk80

Links booklink

Contact Us: admin [ a t ] ucptt.com