Ubuntu Suomen keskustelualueet
Ubuntun käyttö => Ohjelmointi, palvelimet ja muu edistyneempi käyttö => Aiheen aloitti: teele - 05.02.12 - klo:14.42
-
Opettelin tässä vähän pythonia verkosta, mutta @-merkin tarkoitus ei millään selvinnyt. Onkohan se joko pythonin varattu operaattori tms.
Tämä ei ehkä ole oikea paikka python-keskustelulle, mutta enpä tiennyt muutakaan. Jos on olemassa joku tällainen python-foorumi, niin kyllä varmaan osallistuisin siihen, eli vinkit ovat tervetulleita.
Teele
-
Kyseessä on ns. ”decorator”, en tiedä mitä lienee suomeksi. Sen avulla voi mm. luoda luokkaan staattisen metodin Pythonin versiosta 2.4 alkaen.
http://docs.python.org/faq/programming.html#how-do-i-create-static-class-data-and-static-class-methods
-
Tässä on pari hyvää artikkelia joissa kerrotaan noista dekoraattoreista (suomennos on kai "koristelija").
http://www.artima.com/weblogs/viewpost.jsp?thread=240808
http://www.artima.com/weblogs/viewpost.jsp?thread=240845
Lyhyesti sanottuna kyse on siitä että voit luoda funktioita jotka luovat uusia funktioita, ja näiden avulla sitten muokata haluamiesi funktioiden toimintaa, ja tämä @-merkki on siisti merkintätapa kun näitä funktioita luovia funktioita haluaa käyttää. Koko ajatus voi olla aluksi hieman vieras jos ei ole esim. tutustunut funktionaaliseen ohjelmointiin, eikä näiden koristelijoiden käyttö ole useimmissa tapauksissa mitenkään välttämätöntä, ilmankin pärjää pitkälle.
-
Kiitos hyvästä selvityksestä!
Ehkä tosiaan vielä ei ole "koristeiden" aika, täytyy saada vähän kokemusta kielestä ensin. Esimerkkikoodissa vain vilahteli noita @-merkkejä, ja olisivathan ne voineet olla vaikka miten tärkeitä, kun ei ollut pienintäkään aavistusta siitä, mitä ne olivat.
Teele