[python] volání funkce, kde název je uložen v proměnné

Dan Pressl nu.frix na gmail.com
Středa Říjen 9 16:02:39 CEST 2013


Ahoj,

nejjednodussi zpusob, ktery me napada, vypada takhle:

>>> def function(x, y):
...     print x + y
...
>>> function_name = "function"
>>> eval("%s(1,2)" % function_name)
3

Urcite to neni programatorsky uplne nejkrasnejsi a "nejlepcejsi", ale
funguje to. V podstate se vyuzije funkce *eval*:

http://docs.python.org/2/library/functions.html#eval

ktera se pokusi vyhodnotit zadany retezec. Nejdrive se tedy provede operace
*"%s(1,2)" % function_name* jejimz vystupem je retezec *"function(1,2)" *a
ten se pak preda jako parametr do funkce *eval*.

Pokud ale chces volat metodu (funkci uvnitr tridy), tak je mozne pouzit
getattr:

http://docs.python.org/2/library/functions.html#getattr

ale tam nevim o zpusobu, jak metode predat parametr.


2013/10/9 <bertikster na gmail.com>

> Mám název funkce v proměnné, tak bych se chtěl zeptat jak tu funkci můžu
> zavolat? jde mi o to abych dále té funkci mohl dát další parametry
> _______________________________________________
> Python mailing list
> Python na py.cz
> http://www.py.cz/mailman/listinfo/python
>



-- 
^nu.friX
aka Dan Pressl
Reality is useless & F4Q DMNC!!!
Every syntax creates code. And code is poetry.
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://www.py.cz/pipermail/python/attachments/20131009/f01cb3c1/attachment.html>


Další informace o konferenci Python