Su ostukorv on hetkel tühi!
Objekt-orienteeritud programmeerimine (OOP)
objekt
| { | “ago” | “kati” |
| “name :” | | |
class | id-code : | | |
| phone : | | |
| } | | |
/
[“ago”, “kati”]
[111, 112]
.
.
.
[…, …,]
Objekt
- 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 mitmest väärtusest
- värv, mark, mudel, pikkus, registrimass jne
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 auto
OOP
- Objekt-orienteeritud programmeerimine (OOP) on programmeerimise paradigma, mis kasutab objekte
- Python on objekti-orienteeritud programmeerimiskeel
- Pythonis kõik asjad on objektid
OOP tehnikad
- Kapseldamine
- funktsionaalsus peidetakse
- Modulaarsus
- programm jagatakse iseseisvateks tükkideks
- Polümorfism
- alamklass saab meetodeid üle kirjutada
- Pärimine
- alamklass pärib omadused ja meetodid
- Abstraktsioon
- aitab luua klassi, kasutatakse tarbetu teabe peitmiseks ja ainult vajaliku teabe kuvamiseks suhtlevatele kasutajatele
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
s = "Hello"
print(type(s)) # <class 'str'>
print(id(s))
print(id (s.replace("H", "h")))
- Loome sõne s ja küsime selle tüübi. Tüüp on str 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 ka id-ga
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
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'>
Lisa kommentaar