12.07.2015 Views

Python

Python

Python

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

6.3. Atributi funkcijskih objekata 53def vbr_rj(**kwds): return kwdsprint vbr_rj(a=23, b=42)# ispisuje se: {'a':23, 'b':42}Treba primjetiti da se tijelo funkcije vbr_rj sastoji od samo jedne jednostavne naredbe, tako da semoºe staviti u istu liniju kao i naredba def. Dakako, bilo bi jednako to£no (i moºda £itljivije) ako bi sefunkcija vbr_rj ispisala koriste¢i dvije linije umjesto jedne:def vbr_rj(**kwds):return kwdsMoºe se takožer denirati rje£nik £iji su klju£evi i vrijednosti funkcije, a onda na£initi rje£nikdvosmjernim:inverse = {sin:asin, cos:acos, tan:atan, log:exp}for f in inverse.keys( ): inverse[inverse[f]] = fNa taj na£in za odreženu funkciju moºe se brzo na¢i inverzna funkcija. ƒinjenica da su funkcijeobjekti u <strong>Python</strong>u, £esto se izraºava rije£ima da su funkcije objekti prve klase.6.3 Atributi funkcijskih objekataNaredba def denira atribute i tijelo objekta funkcije. Atribut func_name, kojem se moºe pristupiti i kao__name__, je samo£itaju¢i (engl. read-only) atribut (pa poku²aj njegovog mijenjanja podiºe iznimku)koji se odnosi na identikator kori²ten kao ime funkcije u naredbi def. Atribut func_defaults, kojise moºe ponovno povezati ili re-povezati, odnosi se na n-terac pretpostavljenih vrijednosti za slobodneparametre (ili prazan n-terac, ako funkcija nema slobodnih parametara). Jo² jedan funkcijski atribut jedokumentacijski string (engl. documentation string), takožer poznat kao docstring. Docstring atributfunkcije moºe se koristiti kao func_doc ili __doc__. Ako je prva naredba u tijelu funkcije string literal,compiler povezuje taj niz sa docstring atributom funkcije. Docstring se £esto proteºu preko nekolikozi£kih linija, te se stoga obi£no ozna£uju kao string literali unutar trostrukih navodnika. Na primjer:def zbroj(*brojevi):'''Prihvati bilo koji broj numeri£kih argumenata i vrati njihov zbrojArgumenti su n-terac ili lista od jednog ili vi²e brojeva. Izlaz je njihov zbroj. '''rez = 0for broj in brojevi: rez += brojreturn rezDokumentacijski nizovi vaºan su sadrºaj svakoga <strong>Python</strong> kôda. Njihova je uloga sli£na komentarimau bilo kojem programskom jeziku, ali im je iskoristivost ²ira, jer su dostupni pri procesu pokretanja programa(engl. runtime). Programerska okruºenja i drugi alati mogu koristiti docstring-ove funkcijskih,klasnih i modularnih objekata da podsjete programera kako koristiti te objekte. To zna£i da djelujukao pomo¢ (engl. help) programa. Da bi se docstring u£inio ²to korisnijim, trebalo bi po²tovati nekolikojednostavnih dogovora. Prva linija docstringa trebala bi biti saºeti opis svrhe funkcije, a po£injalabi s velikim slovom i zavr²avala to£kom. Unutar nje se ne bi trebalo spominjati ime funkcije, osimako ime nije rije£ iz prirodnog, govornog jezika pa dolazi kao dio opisa operacije te funkcije. Ako jedocstring protegnut preko vi²e linija, druga linija trebala bi biti prazna, a sljede¢e linije bi trebale formiratijedan ili vi²e odlomaka, odvojenih praznim linijama, koji opisuju o£ekivane argumente funkcije,potrebne uvjete, izlazne (povratne) vrijednosti, te mogu¢e nuspojave. Daljnja obja²njenja, knjiºevnereference, te primjeri kori²tenja (koji se mogu provjeriti sa doctest) mogu po slobodnom izboru slijeditiiza, prema zavr²etku docstring-a. Uz ove predenirane atribute, funkcijskom objektu mogu se dodatii drugi atributi. Da bi se stvorio atribut objekta funkcije, prikladna atributna vrijednost se nakon

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!