Mis on objekt:
{ "name":"age" id-code: phone: } ["age", "kati"] [111, 112"] . . . . [... , ... ] objekt : "age" [{up},{kati}] : "kati"
- 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 (nt 7)
- Objekt koosneb tavaliselt mitmest väärtusest
- värv, mark, mudel, pikkus, registrimass jne
Mis on klass:
- Klass kirjeldab ära struktuuri
- näiteks autol on värv, pikkus jne
- Klass (üldiselt) ei sisalda andmeid
- Klass on andmetüüp
- Samatüüpi andmed pärinevad kõik ühest klassist
- punane auto on auto, roheline auto on auto jne
- Kuigi meil on maailmas mitu autot (objekti), siis meil on üks klass auto
Mis on OOP:
- Objekt-orienteeritud programmeerimine (OOP) on programmeerimise paradigma, mis kasutab objekte
- Python on objekti-orienteeritud programmeerimiskeel (OOP)
- Pythonis kõik asjad on objektid
OOP tehnika:
- Kapseldamine (encapsulation)
- funktsionaalsus peidetakse
- Modulaarsus (modularity)
- programm jagatakse iseseisvateks tükkideks
- Polümorfism (polymorphism)
- alamklass saab meetodeid üle kirjutada
- Pärimine (inheritance)
- alamklass pärib omadused ja meetodid
Mis on Sõne:
- Sõne on objekt
- Kui loote uue sõne, siis tegelikult luuakse uus objekt, mille tüüp on
str
. - Sõne «funktsioone» kutsutakse meetoditeks
- ehk siis klassis kirjeldatud funktsioonid on meetodid
Sõne näide:
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 onstr
klass id
tagastab objekti kohta unikaalse arvu. Kui id on erinev, siis on ka objekt erinev (st mälus erinevas kohas)replace
teeb uue sõne, seda näeme kaid
-gareplace
on sõne meetod ehk funktsioon, mida saab välja kutsuda objektil
List:
a = [1, 2, 3] b = [1, 2, 3] c = b print(id(a)) # 44058024 a.append(4) print(id(a)) # 44058024 still the same print(id(b)) # 44059184 print(id(c)) # 44059184 - same as b b.pop() print(id(b)) # 44059184 - still the same print(id(c)) # 44059184 - and same
print(id(c)) # 44059184 - and same
- Listi muutes
id
ei muutu c
jab
viitavad samale listile
a = [1, 2, 3] append(r) b = [1, 2, 3] a 123 --> 1.2.3 c = b b 253 --> list class 1 2 3 a.append(4) c 253 --> list class 1 2 3 b.pop(o) c = [1,2] c 43 --> 1 2 c = b{:] c = list(b)
Veel objekte
print(type(1)) # <class 'int'> print(type(True)) # <class 'bool'> print(type(1.2)) # <class 'float'> print(type(None)) # <class 'NoneType'> print(type(len)) # <class 'builtin_function_or_method'> print(type(type)) # <class 'type'>
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) - Ühest klassist saab luua lõpmata palju objekte
- Objekti kohta öeldakse ka isend ja instants
- Üldiselt mõeldakse «objekt», «isend», «instants» terminitega samu asju
- Erinevates allikates võivad neil erinevused olla