[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