[python] Volání metody podle proměnné

Michal Vyskocil michal.vyskocil na gmail.com
Sobota Květen 5 21:25:56 CEST 2007


On Saturday 05 of May 2007 21:09:41 Jakub Vojáček wrote:
>
> No, jedno řešení by bylo použít exec:
> exec("return %s.udelejneco()"%(promennaSnazvemMetody))
>
> ale není to hezké řešení, chtělo by to použít slovníky atd...

To neni hezke, ale ani bezpecne reseni.

1.) exec("return ...") vyvola chybu SyntaxError: 'return' outside function
2.) zadna kontrola parametru z POSTu, takze takto davame uzivatelum moznost 
sahat primo do strev aplikace
3.) eval je daleko pomalejsi, nez pristup do slovniku a v pripade vytizenejsi 
aplikace to bude dost znat ...

Lepsi je pouzit slovnik

neco jako
handler_list = { "handler1" : funkce1, "handler2" : funkce2 }

a
return handler_list[handler]()

-- 
best regards
Michal Vyskocil


Další informace o konferenci Python