[python] Dekoratory, Django... (bylo Nesrozumitelne prirazovaci prikazy...)

Petr Prikryl PrikrylP na skil.cz
Pondělí Červenec 9 12:05:25 CEST 2007


Petra Javornicka
> Petr Prikryl
> 
> > Jestli nemáte chuť do toho se Python aspoň trošku naučit,
> [...]
> > smažte ho rovnou.  Ale za 2 dny mu na chuť nepřijdete.
> 
> No to abych se skoro ohradila ;-)

Malá provokace k provedení opaku je někdy lepší, 
než přesvědčování... ;)

> Kdybychom nemeli chut se Python *ucit*, tak se jim vubec nebudeme
> zabyvat, protoze za dobu, kterou jsme stravili studiem Pythonu a
> Djanga bychom  meli davno tu web aplikaci hotovou. A jestli to
> smazeme, tak proto, ze dojdeme k nazoru, ze s jinou technologii
> udelame s mensimi naklady vice muziky...

   "One-time Dane Bjarne Stroustrup has never called C++ 
    an "object-oriented programming language," and has noted 
    on occasion that if you want to use Smalltalk, then 
    you should use Smalltalk: Smalltalk is the best Smalltalk there is."

(citováno z http://www.artima.com/weblogs/viewpost.jsp?thread=167119,
také http://www.research.att.com/~bs/hopl2.pdf)

> A co se tyce vlastniho procesu uceni - potrebovali bychom nejakou
> slusnou dokumentaci/ucebnici. Python tutorial jsme zvladli,
> Pilgrimmovo Dive in Python taky, ale s reference guidem, ten nam
> pripada trochu poslabsi - nektere veci jako napr. logging jsou tam
> rozebirany vcetne prikladu ad absurdum,  jine veci jsou jen letmo
> dotceny. 

Python má fantastickou komunitu -- i v Česku a na Slovensku. ;)

> Treba zrovna ty dekoratory: kdyz je budes hledat v obsahu -
> nejsou. V indexu - nejsou. Kdyz je predhodis Googlu a omezis ho na
> site:docs.python.org, tak to najde tu kapitolu, cos mi poslal. Ale tam
> nikde neni uvedeno, ze dekorator musi vracet jinou 'executive' funkci.

To už je vlastnost referenčních příruček. Bývají stručné a neopakují
se. Lehko se dá přehlédnout, že ve třetím odstavci pod modrým rámečkem
je napsáno:

    "A function definition may be wrapped by one or more 
     decorator expressions. Decorator expressions are evaluated 
     when the function is defined, in the scope that contains 
     the function definition. The result must be a callable, 
     which is invoked with the function object as the only argument."

I v tom odstavečku se dá přehlédnout "The result must be a callable".
Některé pojmy jsou trochu specifické, ale současně je nutné brát
v úvahu specifičnost dynamických jazyků.

Fakt je, že dekorátory jsou poměrně mladé.

> To se predpoklada jaksi samo sebou. Zato na teze strance maji naprosto
> banalni default argumenty i s prikladem. A teprve, kdyz das Googlu
> hledat samotny dekorator, najdes ho nekde v PEP318 (nebo kolik).

To jo. PEP jsou někdy na pochopení mnohem lepší a pak ještě 
archivované diskuse k PEP.

> Takze vic nez uceni vlastniho Pythonu nam zabira vyznat se v jeho
> dokumentaci a najit v ni relevantni informace. Jeste horsi je to 
> s tim Djangem :-(

Upřímně řečeno, tohle je vlastnost každé dokumentace, 
na jejíž formu nejsi zvyklá, ne? Když si vzpomenu na 
první setkání s unixovským man, ani mi to nepřišlo. Bylo 
to dávno, a moc možností v té době nebylo. Když jsem poprvé
viděl microsoftí help, kroutil jsem hlavou. Dnes s ním dělám 
víc a už jsem zapoměl, jak se orientovat v manovských stránkách.

"Pořádek je pro blbce. Inteligent ovládá chaos."

Někdy neškodí trocha pořádku, ale všechno dělají
lidi.

Za Django nemůžu mluvit. Vím o něm, ale nepoužívám ho.
Některé odpovědi možná najdeš prostřednictvím odkazu

http://groups.google.com/group/turbogears/browse_thread/thread/d3998a4e750c39c9/4d7710c0297e36c3



pepr



Další informace o konferenci Python