[python] Nesrozumitelne prirazovaci prikazy zamichane mezi definice standalone funkci v modulu

radek py.cz na svarz.cz
Neděle Červenec 8 18:36:31 CEST 2007


To se pouziva misto tzv. dekoratoru, ktere jsou zavedene az od Pythonu
2.4. Je to z toho duvodu, ze Django je podporovane na Python 2.3.
Tusim, ze to je kvuli Mac OSX, kde je standardne distribuovana prave
2.3.5.

Funguje to tak, ze dana funkce (tady index) se obali jinou, takze tim
transformuje dana funkce - vetsinou se prida nejaka obecna
funkcionalita (casto vymezujici a kontrolujici nejake podminky - treba
pristup).

V Pythonu 2.4 se to pak pouziva zpusobem:

@staff_member_required
@never_cache
def index(request):
    return render_to_response(.....)

Ruzny zapis, vysledek stejny.

Jo, ne ze bych chtel z teto konfery odebirat lidi, ale kdyztak ciste
pro Django mame ceskou diskuzni skupinu:
http://groups.google.com/group/django-cs

Djangu zdar :)

Radek

On 7/8/07, Petra Javornicka <petra.javornicka na gmail.com> wrote:
> Ahoj vespolek,
>
> uz jsem zase narazila na neco, co v tutorialech nebylo (nebo jsem to
> nejak minula) a v referenci nevim, jak to najit.
>
> Mam modul (v mem pripade django.contrib.admin.views.main), v nem
> nadefinovanou nejakou funkci a bezprostredne za ni prirazovaci prikaz,
> o kterem sice vim, co dela, ale neni mi jasny, jak se to pouziva a
> kdo, kdy a proc ho vola:
>
> def index(request):
>     return render_to_response(.....)
> index = staff_member_required(never_cache(index))
>
> Stejna konstrukce je pouzita v podstate za kazdou 'public' funkci,
> ktera je volana zvnejsku. Mohla by mi to prosim nejaka laskava duse
> vysvetlit?
>
>
> Diky, Petra
> _______________________________________________
> Python mailing list
> Python na py.cz
> http://www.py.cz/mailman/listinfo/python
>


Další informace o konferenci Python