[python] Nesrozumitelne prirazovaci prikazy zamichane mezi definice standalone funkci v modulu
Karel Šrot
karel.do.pekla.zajel na seznam.cz
Pondělí Červenec 9 08:17:09 CEST 2007
Zdravim,
> Ne o moc, protoze to neco_udelam_s_funkci je taky funkce, ne?
Ano.
> Jak se z toho pak pozna, ze chci do promenne index strcit adresu funkce
> neco_udelam_s_funkci a ne ji zavolat a strcit tam jeji navratovou hodnotu,
> kdyz ji predavam argument index :-O
>
> Analogicky ke Tvym prikladum bych cekavala, ze se adresa priradi v pripade:
> index = neco_udelam_s_funkci
> coz by odpovidalo Tvemu prirazeni b=a. Ale kdyz napisu, ze
> neco_udelam_s_funkci(index)
> tak to vypada spis jako jeji volani, tedy a(1)
>
a to prave neni pravda. Pokusim se to vysvetlit jinak, ackoliv
dekoratory nepouzivam, ale snad to nebudu psat zbytecne. Pomozme si
analogii a matematiky. Pak to neco_udelam_s_funkci je vlastne operator
(funkce pracujici s funkcemi).
Treba necht je neco_udelam_s_funkci diferencialni operator D, ktery
funkci derivuje. Potom
g = D(f)
definuji funkci g, ktera je derivaci funkce f (presne totez mame v
diskutovanem prikazu). Naopak aby se jednalo o hodnotu (funkci hodnotu),
pak tuto hodnotu musime urcovat v nejakem konkretnim bode.
d = D(f)(1) urcime hodnotu derivace funkce f v bode 1, coz je totez jako
d = g(1)
Tedy abych to nejak zakoncil, aby to bylo Vami zminovane volani funkce,
musel by tam byt argument funkce index. Ci jeste jinak, ono se o volani
funkce jedna, ale pouze volani funkce neco_udelam_s_funkci, ktera zde
figuruje jako operator a tedy transformuje jednu funkci (zde index) na
druhou. To, ze je na leve strane take index je pouze analogie prikazu
a = a + 1
Tak ted nevim, jak moc jasnejsi to je.. :-) Snad jo.
Karel
Další informace o konferenci Python