python oops concepts python classes
Koncepty OOP v Pythone: Triedy a objekty Pythonu, dedenie, preťaženie, prepísanie a skrytie dát
V predchádzajúcom návode sme niektoré z Vstupné / výstupné operácie ktoré poskytuje Python.
Dozvedeli sme sa, ako tieto funkcie používať na čítanie údajov od používateľa alebo z externých zdrojov a tiež ako tieto údaje zapisovať do externých zdrojov. Tiež sme sa naučili, ako rozdeliť obrovský kód na menšie metódy pomocou funkcií a ako ich vyvolať alebo k nim získať prístup.
Ďalšie čítanie => Explicitný rozsah bezplatných výcvikových kurzov pre Python
V tomto tutoriáli sa budeme zaoberať konceptom Advanced Python nazývaným OOP a rôznymi typmi konceptov oops, ktoré sú v Pythone dostupné a ako a kde ich používať.
Čo sa dozviete:
- Sledujte videonávody
- Triedy a predmety
- Konštruktor v Pythone
- Dedenie
- Preťaženie metód v Pythone
- Prepísanie metódy v Pythone
- Skrývanie dát v Pythone
- Záver
- Odporúčané čítanie
Sledujte videonávody
Video # 1: Trieda, objekty a konštruktor v Pythone
ako extrahovať torrentovaný súbor
Video # 2: Koncept dedenia v Pythone
Video # 3: Preťaženie, prepísanie a skrytie dát v Pythone
Triedy a predmety
- Python je objektovo orientovaný programovací jazyk, kde programovanie kladie väčší dôraz na objekty.
- Takmer všetko v Pythone sú objekty.
Triedy
Trieda v Pythone je kolekcia objektov, o triede si môžeme myslieť ako s modrotlačou, náčrtom alebo prototypom. Obsahuje všetky podrobnosti o objekte.
V príklade z reálneho sveta je Zviera trieda, pretože na svete máme rôzne druhy Zvierat a všetky tieto patria do triedy zvanej Zviera.
Definovanie triedy
V Pythone by sme mali definovať triedu pomocou kľúčového slova ‘class’.
Syntax:
class classname: #Collection of statements or functions or classes
Príklad:
class MyClass: a = 10 b = 20 def add(): sum = a+b print(sum)
Vo vyššie uvedenom príklade sme deklarovali triedu s názvom „Myclass“ a deklarovali a definovali sme niektoré premenné a funkcie.
Na prístup k funkciám alebo premenným prítomným vo vnútri triedy môžeme použiť názov triedy tak, že vytvoríme jej objekt.
Najprv sa pozrime, ako získať prístup k používateľom používajúcim názov triedy.
Príklad:
class MyClass: a = 10 b = 20 #Accessing variable present inside MyClass print(MyClass.a)
Výkon
10
Výkon:
Predmety
Objekt je zvyčajne inštanciou triedy. Používa sa na prístup ku všetkému prítomnému vo vnútri triedy.
Vytvorenie objektu
Syntax:
variablename = classname
Príklad:
ob = MyClass()
Takto sa vytvorí nový inštančný objekt s názvom „ob“. Pomocou tohto názvu objektu môžeme získať prístup ku všetkým atribútom prítomným vo vnútri triedy MyClass.
Príklad:
class MyClass: a = 10 b = 20 def add(self): sum = self.a + self.b print(sum) #Creating an object of class MyClass ob = MyClass() #Accessing function and variables present inside MyClass using the object print(ob.a) print(ob.b) ob.add()
Výkon:
10
dvadsať
30
Výkon:
Konštruktor v Pythone
Konštruktor v Pythone je špeciálna metóda, ktorá sa používa na inicializáciu členov triedy počas behu, keď je objekt vytvorený.
V Pythone máme niekoľko zabudovaných špeciálnych metód triedy, ktoré začínajú dvojitým podčiarkovníkom (__) a majú v Pythone špeciálny význam.
Názov konštruktora bude vždy __init __ ().
Každá trieda musí mať konštruktor, aj keď konštruktor nevytvoríte výslovne, vytvorí sa sám predvolený konštruktor.
Príklad:
class MyClass: sum = 0 def __init__ (self, a, b): self.sum = a+b def printSum(self): print(“Sum of a and b is: ”, self.sum) #Creating an object of class MyClass ob = MyClass(12, 15) ob.printSum()
Výkon:
Súčet a a b je: 27
Výkon:
Ak pozorujeme vo vyššie uvedenom príklade, nevoláme metódu __init __ (), pretože sa bude volať automaticky, keď vytvoríme objekt pre túto triedu a inicializujeme dátové členy, ak existujú.
Vždy nezabudnite, že konštruktor nikdy nevráti žiadne hodnoty, a preto neobsahuje žiadne návratové príkazy.
Dedenie
Dedenie je jedným z najsilnejších konceptov OOP.
Trieda, ktorá dedí vlastnosti inej triedy, sa volá Inheritance.
Trieda, ktorá dedí vlastnosti, sa nazýva detská trieda / podtrieda a trieda, z ktorej sa dedia vlastnosti, sa nazýva rodičovská trieda / základná trieda.
Python poskytuje tri typy dedičnosti:
- Jednotné dedičstvo
- Viacúrovňové dedičstvo
- Viacnásobné dedičstvo
Odporúčané čítanie = >> Dedenie v Jave
# 1) Dedičné dedičstvo
V prípade jednoduchého dedenia zdedí jedna trieda vlastnosti iba jednej triedy.
Príklad:
class Operations: a = 10 b = 20 def add(self): sum = self.a + self.b print(“Sum of a and b is: “, sum) class MyClass(Operations): c = 50 d = 10 def sub(self): sub = self.c – self.d print(“Subtraction of c and d is: ”, sub) ob = MyClass() ob.add() ob.sub()
Výkon:
Súčet a a b je: 30
Odčítanie c a d je: 40
Výkon:
č 1 zadarmo online youtube video jeden video prevodník
V uvedenom príklade dedíme vlastnosti triedy „Operations“ na triedu „MyClass“.
Preto môžeme pristupovať ku všetkým metódam alebo príkazom prítomným v triede „Operations“ pomocou objektov MyClass.
# 2) Viacúrovňové dedičstvo
Vo viacúrovňovom dedičstve funguje jedna alebo viac tried ako základná trieda.
Čo znamená, že druhá trieda zdedí vlastnosti prvej triedy a tretia trieda zdedí vlastnosti druhej triedy. Takže druhá trieda bude fungovať ako rodičovská aj detská.
Príklad:
class Addition: a = 10 b = 20 def add(self): sum = self.a + self.b print(“Sum of a and b is: ”, sum) class Subtraction(Addition): def sub(self): sub = self.b-self.a print(“Subtraction of a and b is: ”, sub) class Multiplication(Subtraction): def mul(self): multi = self.a * self.b print(“Multiplication of a and b is: ”, multi) ob = Multiplication () ob.add() ob.sub() ob.mul()
Výkon:
Súčet a a b je: 30
Odčítanie a a b je: 10
Násobenie a a b je: 200
Výkon:
Vo vyššie uvedenom príklade trieda „Odčítanie“ zdedí vlastnosti triedy „Sčítanie“ a trieda „Násobenie“ zdedí vlastnosti triedy „Odčítanie“. Takže trieda „Odčítanie“ bude fungovať ako základná aj odvodená trieda.
# 3) Viacnásobné dedičstvo
Trieda, ktorá dedí vlastnosti viacerých tried, sa nazýva Multiple Inheritance.
Ďalšie čítanie = >> Podporuje Java viacnásobné dedenie?
Príklad:
class Addition: a = 10 b = 20 def add(self): sum = self. a+ self.b print(“Sum of a and b is: “, sum) class Subtraction(): c = 50 d = 10 def sub(self): sub = self.c-self.d print(“Subtraction of c and d is: ”, sub) class Multiplication(Addition,Subtraction): def mul(self): multi = self.a * self.c print(“Multiplication of a and c is: ”, multi) ob = Multiplication () ob.add() ob.sub() ob.mul()
Výkon:
Súčet a a b je: 30
Odčítanie c a d je: 10
Násobenie písmen a a je: 500
Výkon:
Preťaženie metód v Pythone
Viaceré metódy s rovnakým názvom, ale s iným typom parametra alebo rôznym počtom parametrov sa nazývajú preťaženie metód
Príklad:
def product(a, b): p = a*b print(p) def product(a, b, c): p = a*b*c print(p) #Gives you an error saying one more argument is missing as it updated to the second function #product(2, 3) product(2, 3, 5)
Výkon:
30
Výkon:
Výkon:
Preťaženie metód nie je v Pythone podporované, pretože ak vidíme vo vyššie uvedenom príklade, definovali sme dve funkcie s rovnakým názvom ‘product’, ale s odlišným počtom parametrov.
Ale v Pythone sa aktualizuje najnovšia definovaná funkcia, a preto bude funkčný produkt (a, b) zbytočný.
Prepísanie metódy v Pythone
Ak má metóda podtriedy rovnaký názov, aký je deklarovaný v metóde nadtriedy, nazýva sa to Prepísanie metódy
Na dosiahnutie prepísania metódy musíme použiť dedičnosť.
Príklad:
class A: def sayHi(): print(“I am in A”) class B(A): def sayHi(): print(“I am in B”) ob = B() ob.sayHi()
Výkon:
Som v B
Výkon:
Skrývanie dát v Pythone
Skrytie údajov znamená urobiť údaje súkromnými, aby k nim nemali prístup ostatní členovia triedy. Je k nim prístup iba v triede, kde je deklarovaná.
Ak chceme v pythone skryť premennú, musíme pred názov premennej napísať dvojité podčiarknutie (__).
Príklad:
Class MyClass: __num = 10 def add(self, a): sum = self.__num + a print(sum) ob = MyClass() ob.add(20) print(ob.__num) #The above statement gives an error because we are trying to access private variable outside the class
Výkon:
30
Traceback (posledný posledný hovor):
Súbor „DataHiding.py“, riadok 10, v
tlač (či už splatná .__)
AttributeError: Inštancia MyClass má
žiadny atribút ‘__num
Výkon:
softvér pre správu a monitorovacie nástroje
Záver
Trieda je návrh alebo šablóna, ktorá obsahuje všetky podrobnosti o objekte, pričom objekt je inštanciou triedy.
- Ak chceme do triedy dostať vlastnosti inej triedy, potom to môžeme dosiahnuť dedením.
- Dedičstvo je 3 typov - jednoduché dedičstvo, viacúrovňové dedičstvo a viacnásobné dedičstvo.
- Preťaženie metód nie je v Pythone podporované.
- Prepísanie metódy sa používa na prepísanie implementácie tej istej funkcie, ktorá je definovaná v inej triede.
- Atribúty údajov môžeme označiť ako súkromné alebo ich skryť, aby neboli prístupné mimo triedy, kde sú definované.
Náš nadchádzajúci tutoriál podrobne vysvetlí viac o ďalších konceptoch Pythonu !!
Výukový program PREV | NEXT Tutorial
Odporúčané čítanie
- Premenné Pythonu
- Výukový program pre Python DateTime s príkladmi
- Funkcie reťazca Python
- Výukový program pre Python pre začiatočníkov (praktické školenie v jazyku Python ZDARMA)
- Kontrolné príkazy Pythonu (Python Continue, Break and Pass)
- Operátory Pythonu
- Pythonove funkcie
- Proces predstavenia a inštalácie Pythonu