[python] Dekorátor
Radek
radek.hnilica na gmail.com
Pondělí Únor 21 15:42:46 CET 2011
On 20 ún, 16:02, "Róbert Čerňanský" <hsli... na zoznam.sk> wrote:
> Dúfam, že som Ťa ešte viac nepoplietol. ;-)
> Robo
Dík za snahu, průběžně jsem ten dekorátor studoval z videozáznamů
přednášek co jsem našel, takže jsem se v tvé odpovědi
orientoval .Takže ještě jednou dík.
ono u takovýchto jednoduchých pojmů, které velmi rychle vedou k hůře
pochopitelným abstrakcím, je dobrých příkladů vždycky málo.
Z toho co jsem četl, tak použítí třídy pro realizaci dekorátoru funkce
je způsob jak si udržet větší kontrolu nad kódem?
Můj puvodní dekorátor vypadal nějak takto:
class Authorize:
def __init__ ...
def __call__ ...
def dekorovana_fce:
...
def metoda_volana_z_dekorovana_fce:
def jina_metoda_volana_z_dekorovana_fce:
Když jsem to všechno psal, popisoval a ladil, tak jsem to nakonec celé
refaktorizoval že tam ty další metody nezůstaly. Prostě jsem si při
prvním programovacím pokusu nevšiml že to dělám složitě. Ale s
dekorovanou fcí zacházím tak, jako by fungovala v kontextu třídy
dekorátoru, což taky funguje.
A teď to budu vylepšovat, protože jsem si uvědomil, že když dekoruji
metodu třídy, má fce kterou dekoruju jako první argument odkaz na
kontext té třídy. Už jsem ho částečně použil a z dekorované funkce do
něj psal.
Další informace o konferenci Python