Institute of Computer Science
  1. Main page
  2. Python koolis
ET
Log in

Python koolis

  • Sissejuhatus
  • Teemad

1. Paigaldamine
2. Kommentaarid
3. Muutujad
4. Andmetüübid
5. Sõned
6. Operaatorid
7. Sisend ja väljund
8. Tingimus
9. Tsükkel
10. Algoritm ja plokkskeem
11. Järjend
12. Sõnastik
13. Funktsioon
14. Failioperatsioonid
15. Moodulid
16. Objektid

  • PyGame
  • ÜLESANDED

16. Objektid

Objektide teema on edaspidises programmeerimises oluline, kuid momendil teeme sellest lihtsalt lühiülevaate. Tulevikus kasutatav graafiliste mängude mooduli PyGame puhul näeme pidevalt sarnast lähenemist (punkt objekti ja selle meetodi vahel jne). Kui selle peatüki sisu jääb kohati võõraks, pole vaja muretseda.

Hoides andmeid mingi objekti (näiteks ühe inimese) kohta oleme seni kasutanud erinevaid muutujaid: eraldi muutujat eesnime, perekonnanime, vanuse jne kohta. Mitme inimese kohta peaksime muutujate arvu suurendama ning nendega ümberkäimine on tülikas.

Nagu reaalsete asjade puhul, saame ka programmeerimisel kasutada objekte koos nende omaduste kirjelduste ja nendega seotud meetoditega (tegevustega). Reaalses maailmas oleval objekti "raamat" kirjeldamisel saame öelda näiteks, milline on selle pealkiri, kes on autor, mitu lehte sellel on, millist värvi on kaaned jne. Samuti saame me kirjeldada tegevusi, mida me saame raamatuga teha: seda avada, lugeda, sulgeda jne. Objektide omadusi nimetatakse nende atribuutideks, tegevusi, mida nendega teha saab, meetoditeks.

Pythonis võiksime objekti "raamat" kirjeldada näiteks nii:

  • atribuudid: raamat.pealkiri, raamat.autor, raamat.lk_arv jne;
  • meetodid: raamat.avamine(), raamat.lugemine(), raamat.sulgemine().

Punkt eristab objekti selle atribuudist või meetodist. Atribuutideks võivad olla suvalised muutujad (arvud, sõned, ka järjendid jne), meetoditeks funktsioonid.

Objekti luues defineerime kõigepealt nn. klassi (inglise k. class) e. omaduste ja meetodite kogumi, millest seda tüüpi objektid koosnevad.

class Raamat:
    def avamine(self):
        self.olek = "lahti"
        return self.olek
    def sulgemine(self):
        self.olek = "kinni"
        return self.olek

Nüüd tuleb luua konkreetne raamatu tüüpi objekt:

romaan = Raamat("", "")

Seejärel lisada sellele uuele Raamat-tüüpi objektile "romaan" atribuudid:

romaan.pealkiri = "Toomas Nipernaadi"
romaan.autor = "Gailit"
romaan.olek = "kinni"

Kui soovime teada, millised on objekti "romaan" autor ja pealkiri, võime kasutada sellist rida:

print(romaan.autor, romaan.pealkiri)

Kui tahame vaadata raamatu olekut, seejärel muuta seda ("avada" raamatut) ning olekut uuesti vaadata, võime kirjutada nii:

print(romaan.olek)
romaan.avamine()
print(romaan.olek)

Creative Commons litsentsiga Autorile viitamine + Mitteäriline eesmärk 3.0 Eesti (CC BY-NC 3.0 EE) - https://creativecommons.org/licenses/by-nc/3.0/ee/

  • Institute of Computer Science
  • Faculty of Science and Technology
  • University of Tartu
In case of technical problems or questions write to:

Contact the course organizers with the organizational and course content questions.
The proprietary copyrights of educational materials belong to the University of Tartu. The use of educational materials is permitted for the purposes and under the conditions provided for in the copyright law for the free use of a work. When using educational materials, the user is obligated to give credit to the author of the educational materials.
The use of educational materials for other purposes is allowed only with the prior written consent of the University of Tartu.
Terms of use for the Courses environment