[问题] 执行 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