logo

Python mantojums

Mantojums ir svarīgs objektorientētās paradigmas aspekts. Mantojums nodrošina programmas koda atkārtotu izmantošanu, jo mēs varam izmantot esošu klasi, lai izveidotu jaunu klasi, nevis izveidotu to no jauna.

Mantojumā atvasinātā klase iegūst rekvizītus un var piekļūt visiem datu dalībniekiem un funkcijām, kas definētas vecākklasē. Bērnu klase var arī nodrošināt savu īpašo ieviešanu vecāku klases funkcijām. Šajā apmācības sadaļā mēs detalizēti apspriedīsim mantojumu.

pārvērst strinu par int

Python programmā atvasināta klase var mantot bāzes klasi, vienkārši minot bāzi iekavās aiz atvasinātās klases nosaukuma. Apsveriet šādu sintaksi, lai mantotu bāzes klasi atvasinātajā klasē.

Python mantojums

Sintakse

 class derived-class(base class): 

Klase var mantot vairākas klases, minot tās visas iekavās. Apsveriet šādu sintaksi.

Sintakse

 class derive-class(, , ..... ): 

1. piemērs

 class Animal: def speak(self): print('Animal Speaking') #child class Dog inherits the base class Animal class Dog(Animal): def bark(self): print('dog barking') d = Dog() d.bark() d.speak() 

Izvade:

 dog barking Animal Speaking 

Python daudzlīmeņu mantošana

Daudzlīmeņu mantošana ir iespējama python, tāpat kā citās objektorientētās valodās. Daudzlīmeņu mantošana tiek arhivēta, kad atvasināta klase manto citu atvasinātu klasi. Nav ierobežojumu to līmeņu skaitam, līdz kuriem daudzlīmeņu mantojums tiek arhivēts python.

Python mantojums

Daudzlīmeņu mantojuma sintakse ir dota zemāk.

Sintakse

 class class1: class class2(class1): class class3(class2): . . 

Piemērs

 class Animal: def speak(self): print('Animal Speaking') #The child class Dog inherits the base class Animal class Dog(Animal): def bark(self): print('dog barking') #The child class Dogchild inherits another child class Dog class DogChild(Dog): def eat(self): print('Eating bread...') d = DogChild() d.bark() d.speak() d.eat() 

Izvade:

 dog barking Animal Speaking Eating bread... 

Python Daudzkārtēja mantošana

Python nodrošina mums elastību, lai mantotu vairākas bāzes klases bērnu klasē.

Python mantojums

Sintakse vairāku mantojuma veikšanai ir norādīta tālāk.

Sintakse

 class Base1: class Base2: . . . class BaseN: class Derived(Base1, Base2, ...... BaseN): 

Piemērs

 class Calculation1: def Summation(self,a,b): return a+b; class Calculation2: def Multiplication(self,a,b): return a*b; class Derived(Calculation1,Calculation2): def Divide(self,a,b): return a/b; d = Derived() print(d.Summation(10,20)) print(d.Multiplication(10,20)) print(d.Divide(10,20)) 

Izvade:

 30 200 0.5 

Issubclass(sub,sup) metode

Metode issubclass(sub, sup) tiek izmantota, lai pārbaudītu attiecības starp norādītajām klasēm. Tas atgriež patiesu, ja pirmā klase ir otrās klases apakšklase, un false, ja tā nav.

Apsveriet šādu piemēru.

Piemērs

 class Calculation1: def Summation(self,a,b): return a+b; class Calculation2: def Multiplication(self,a,b): return a*b; class Derived(Calculation1,Calculation2): def Divide(self,a,b): return a/b; d = Derived() print(issubclass(Derived,Calculation2)) print(issubclass(Calculation1,Calculation2)) 

Izvade:

 True False 

Isinstance (obj, class) metode

Metode isinstance() tiek izmantota, lai pārbaudītu attiecības starp objektiem un klasēm. Tas atgriež patieso vērtību, ja pirmais parametrs, t.i., obj, ir otrā parametra gadījums, t.i., klase.

Apsveriet šādu piemēru.

Piemērs

 class Calculation1: def Summation(self,a,b): return a+b; class Calculation2: def Multiplication(self,a,b): return a*b; class Derived(Calculation1,Calculation2): def Divide(self,a,b): return a/b; d = Derived() print(isinstance(d,Derived)) 

Izvade:

apgriežot virkni java
 True 

Metodes ignorēšana

Mēs varam nodrošināt konkrētu vecāku klases metodes ieviešanu mūsu bērnu klasē. Ja vecākklases metode ir definēta bērnklasē ar kādu konkrētu ieviešanu, tad šo jēdzienu sauc par metodes ignorēšanu. Mums var būt nepieciešams veikt metodes ignorēšanu scenārijā, kurā ir nepieciešama atšķirīga vecākklases metodes definīcija pakārtotajā klasē.

Apsveriet šo piemēru, lai veiktu metodes ignorēšanu programmā python.

Piemērs

 class Animal: def speak(self): print('speaking') class Dog(Animal): def speak(self): print('Barking') d = Dog() d.speak() 

Izvade:

 Barking 

Reālā dzīve Metodes ignorēšanas piemērs

 class Bank: def getroi(self): return 10; class SBI(Bank): def getroi(self): return 7; class ICICI(Bank): def getroi(self): return 8; b1 = Bank() b2 = SBI() b3 = ICICI() print('Bank Rate of interest:',b1.getroi()); print('SBI Rate of interest:',b2.getroi()); print('ICICI Rate of interest:',b3.getroi()); 

Izvade:

 Bank Rate of interest: 10 SBI Rate of interest: 7 ICICI Rate of interest: 8 

Datu abstrakcija python

Abstrakcija ir svarīgs objektorientētas programmēšanas aspekts. Python mēs varam arī veikt datu slēpšanu, pievienojot dubulto pasvītrojumu (___) kā prefiksu atribūtam, kas ir jāslēpj. Pēc tam atribūts nebūs redzams ārpus klases caur objektu.

Apsveriet šādu piemēru.

Piemērs

 class Employee: __count = 0; def __init__(self): Employee.__count = Employee.__count+1 def display(self): print('The number of employees',Employee.__count) emp = Employee() emp2 = Employee() try: print(emp.__count) finally: emp.display() 

Izvade:

 The number of employees 2 AttributeError: 'Employee' object has no attribute '__count'