Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Pojasnjenja u vezi pisanja koda

[es] :: Python :: Pojasnjenja u vezi pisanja koda

[ Pregleda: 2791 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

MarkoBalkan

Član broj: 141124
Poruke: 1624
*.adsl.net.t-com.hr.



+19 Profil

icon Pojasnjenja u vezi pisanja koda24.08.2007. u 20:28 - pre 202 meseci
jel moze netko na brzinu objasniti, sta predstavlja "def nesto" izvan klase i unutar klase i sta predstavlja kad pise def "_nesto_" i def "nesto" ?

citao sam nesto o tome, da se klase, objekti odredjuju sa tab-om ili razmakom.
 
Odgovor na temu

mr.marvin

Član broj: 137276
Poruke: 111
*.crnagora.net.



Profil

icon Re: Pojasnjenja u vezi pisanja koda24.08.2007. u 21:26 - pre 202 meseci
Da pokusam ja...

>jel moze netko na brzinu objasniti, sta predstavlja "def nesto" izvan klase i unutar klase

Ako je unutar klase, onda je dostupno samo klasi u kojoj se nalazi, i tu funkciju pozivas preko klase.

Npr:

Code:

class Ispis:
    """Jednostavan primjer ispisivanja
    teksta"""

    def __init__(self, tekst):
        "provjera teksta"

        if len(tekst)==0:
            raise "Unesite tekst on najmanje 1 karakter"
        
        self.tekst = tekst

    def ispis(self):
        "ispis teksta"
        print "Tekst ispisan pomocu klase:"
        print self.tekst


def ispis2(teks):
    "ispis teksta"
    print tekst



Ako sad napravis instancu klase:

t = Ispis("Proba ispisa iz klase.")

...i zelis da ispises tekst, moras pozvati funkciju unutar klase:

t.ispis()

...jer ce pozivanje samo ispis() prijaviti gresku.

Funkcija ispis2 je van klase i nju pozivas, logicno, direktno. Ovo ima veze sa funkcionalnim programiranjem i objektnim programiranjem, odnosno razlicitim pristupima pisanja koda.

> i sta predstavlja kad pise def "_nesto_" i def "nesto" ?

Funkcije koje su omedjene sa __ su rezervisane funkcije i imaju poseban znacaj. U gornjem primjeru je __init__ funkcija i njena jedina namjena jeste da se prva izvrsi nakon sto se kreira instanca, tj. "kopija" klase. U gornjem slucaju, __init__ provjerava da li je uneseni tekst duzi od jednog karaktera, i ukoliko nije, prijavljuje se greska. Ukoliko je sve u redu, tekst postaje javno dostupan citavoj klasi (zbog ovog self.) i moze de iskoristiti u funkciji ispis() unutar klase. Drugi primjer bi bilo __add__ koje odredjuje kako ce se klase ponasati ukoliko se "sabiraju", itd...

>citao sam nesto o tome, da se klase, objekti odredjuju sa tab-om ili razmakom.

To je konvencija Python jezika: blokovi koda se odvajaju blanko znakovima (cini mi se sa 4) i praznim linijama.

PS
O klasama u Pythonu:
http://diveintopython.org/object_oriented_framework/index.html
 
Odgovor na temu

[es] :: Python :: Pojasnjenja u vezi pisanja koda

[ Pregleda: 2791 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.