[python] volání funkce, kde název je uložen v proměnné
Hynek Fabian
hynek.fabian na firma.seznam.cz
Středa Říjen 9 16:22:37 CEST 2013
Pokud mas v one promene referenci, pak proste pridanim zavorek:
def foo(): pass
bar = foo
bar() # zavola foo()
Jestli mas v promenne retezec s nazvem, tak je to komplikovanejsi a
optimalni podoba zavisi odkud tu funkci chces. Zaklad je dostat se na
jmenny prostor, odtud ziskas referenci a kdyz mas referenci staci zase
jen doplnit zavorky. Kdyz by to bylo z nejakeho modulu:
import foo
s = "bar"
fce = getattr(foo, s) # reference na funkci bar
fce()
Kdyz by to bylo z aktualniho modulu tak nepotrebujes getattr() a sahnes
si pro referenci primo do locals().
Parametry v obou pripadech predas obvyklym zpusobem. Jestli mas
parametry ulozene nekde bokem, muzes kontejnerove promenne (tuple, list,
dict) rozbalit operatorem hvezdicky:
params = "foo", 42
fce("bar", *params) # zavola fce("bar", "foo", 42)
Slovniky umi totez pro keyword parametry, ale to uz si najdi v rtfm.
On 10/09/13 15:45, bertikster na gmail.com wrote:
> 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
>
Další informace o konferenci Python