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

Jan Janech devel na atlas.sk
Sobota Květen 5 22:00:58 CEST 2007


ahoj,

eval je dost skareda vec, neodporucam pouzivat, kde nieje treba.

V tomto pripade sa da pouzit jeden s troch sposobov (okrem toho slovniku
z handlermi, ktory je podla mna dost neprakticky):

1) Pristup ku globalnym premennym a funkciam podla mena:
globals()[nazov]

2) Pristup ku lokalnym premennym a funkciam podla mena:
locals()[nazov]

3) Pristup ku atributom a metodam lubovolneho objektu podla mena:
getattr(objekt, nazov)

Inak presne toto sa tu pred nedavnom preberalo, odporucam najskor
pozriet do archivu, az potom sa pytat

Janko

martin.stiborsky na gmail.com wrote:
> Zdravím, mám problémek. Dá se v pythonu zařídit zavolání metody podle
> hodnoty proměnné ?
> Například když mám:
> 
> import foo,bar
> 
> promennaSnazvemMetody = 'foo'
> 
> tak aby fungovalo:
> 
> return promennaSnazvemMetody.udelejneco()
> 
> Ona proměnná je typu str, takže tudy cesta nevede ..
> Potřebuju to k programování webíku s cherrypy, podle proměnné která se
> získá přes POST se určí handler který má zpracovat stránku, chci se
> takhle vyhnout ifům ..
> 
> Díky moc za rady


Další informace o konferenci Python