Ievads

Kāpēc OOP?

https://youtu.be/u8gRq4OojXY

Mantošana

Python ir iespējama mantošana uz vairākiem līmeņiem. Tas nozīmē, ka klase var mantot gan no bāzes klases, gan no atvasinātās klases. Python arī atbalsta vairākkārtēju mantojumu, kur viena klase var mantojumu saņemt no viena vai vairāka klašu skaita. Tas ļauj mums aprakstīt sarežģītas attiecības starp objektiem ar minimālu atkārtotu kodu.

Polimorfisms

Polimorfisms ir koncepcija, kas ļauj funkcijām un objektiem darboties dažādos veidos atkarībā no konteksta. Ir funkciju polimorfisms, piemēram, len() vai saskaitīšanas operators +, kas var darboties atšķirīgi atkarībā no datiem.

Abstrakcija

Python atbalsta abstrakcijas koncepciju, ļaujot objektiem ar metodēm, kam ir vienāds nosaukums, tikt izsauktiem vispārējā veidā. Turklāt Python piedāvā mums abstraktās bāzes klases (ABC), lai izveidot skaidrāku interfeisu.

Inkapsulācija

Python pieeja inkapsulācijai ir unikāla salīdzinājumā ar vairākumā citu objektorientēto programmēšanas valodu. Pythonā visi objekta locekļi ir publiski pieejami, bet ir konvencijas, kas norāda, izstrādātājiem, ka dati ir domāti kā aizsargāti vai privāti.

Apskati kodu, identificē katru OOP aspektu


OOP pamati

Datu tipi

a_string = "Cool String"
an_int = 12

print(type(a_string))
# prints "<class 'str'>"

print(type(an_int))
# prints "<class 'int'>"

1. praktiskais uzdevums

Klases

class CoolClass:
  pass

2. praktiskais uzdevums