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 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.
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.
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
a_string = "Cool String"
an_int = 12
print(type(a_string))
# prints "<class 'str'>"
print(type(an_int))
# prints "<class 'int'>"
class CoolClass:
pass