Objekt
{
“name”: “ago” / “kati” -object
class – “id-code”:
“phone”:
}
Objekt kirjeldab ära konkreetse loogilise kogumi
- näiteks õues olev punane auto on üks objekt
- selle taga olev roheline auto on teine objekt jne
Tavaliselt mõtleme me arvust kui ühest väärtusest
Objekt koosneb tavaliselt mitmes väärtusest
- värv,mark,pikkus,registrimaas jne
Klass
Klass kirjeldab ära struktuuri
- näiteks autol on värv,pikkus jne
Klass (üldselt) ei sisalda andmeid
Klass on andmetüüp
Samatüüpi andmed pärinevad kõik ühest klassist
- punane auto on auto, roheline auto on auto
Kuigi meil on maailmas mitu autot (objekti), siis meil on ü auto
OOP
On programeerimise paradigm, mis kasutab objekte
Python on objekte-orienteeritud programeerimiskeel
Pythonis kõik asjad on objektid
OOP tehnikad
Kapseldamine (encapsulation) – funktsionaalsus peidetakse
Modulaarsus (modularity) – programm jagatakse iseseisvateks tükkideks
Polümorfism (polymorphism) – alamklass saab meetodeid üle kirjutada
Milline alljärgnevatest lausetest kirjeldab polümorfismi kõige paremini?
Polümorfism võimaldab käsitleda erineva tüübi ja käitumisega objekte sama üldtüübina.
Mis on polümorfismi kasutamise peamine põhjus?
Programm on parema disainiga ning seda on lihtsam hallata ja uuendada.
Pärimine (inheritance) – alamklass pärib omadused ja meetodid
Sõne
Sõne on objekt
Kui loote uue sõne, siis luuakse uus objekt, mille tüüp on str
Sõne “funktsioone” kustutakse meetoditeks
- ehk siis klassis kirjeldatud funktsioonid on meetodid
s = “Hello”
print(type(s)) # <class ‘str’>
print(id(s)) # 30773472
print(id(s.replace(“H”,”h”))) #61507648
Loome sõne s ja küsime selle tüübi. Tüüp on str klass
id tagastab objekti kohta arvu. Kuid on erinev, siis on ka objekt erinev (st mälus erinevas kohas)
replace teeb uue sõne, seda näeme ka id-ga
List
a=[1,2,3] a[123] – [1,2,3,4]
b=[1,2,3]
c=b b[233] – [,2,3]
a.append(4) c[233] – [,2,3]
b.pop(0)
c=[1,2] c=[43] – [1,2]
c=b[:]
c=list(b)
Klass kui andmetüüp
Iga klass on andmetüüp
Näiteks on Pythonis klass str
Iga konkreetne sõne, näiteks “tere”, on selle klassi objekt (ehk isend)
Ühekst klassist saab luua lõpmata palju objekte
Objekti kohta öeldakse ka isend ja instants
- Üldselt mõeldakse “objekte”,”isend”,”instants” terminitega samu asju
Konstruktor
Objekti loomisel pannakse käima eriline meetod ehk konstruktor
Meetod kirjeldakse: __init__(self)
See meetod pannakse käima üks kord objekte loomisel
Eelnevas näites s = Student() kutsub välja konstruktori
Konstrunturi kirjeldamine ei ole kohustuslik



























