logo

Pythonin perintö

Perinnöllisyys on tärkeä osa olio-paradigmaa. Periytys tarjoaa koodin uudelleenkäytettävyyden ohjelmalle, koska voimme käyttää olemassa olevaa luokkaa uuden luokan luomiseen sen sijaan, että luomme sen tyhjästä.

Periytymisessä lapsiluokka hankkii ominaisuudet ja voi käyttää kaikkia emoluokkassa määriteltyjä datajäseniä ja toimintoja. Lapsiluokka voi myös tarjota erityisen toteutuksensa pääluokan funktioille. Tässä opetusohjelman osassa keskustelemme perinnöstä yksityiskohtaisesti.

java muuntaa merkki merkkijonoksi

Pythonissa johdettu luokka voi periä perusluokan mainitsemalla kantaluvun suluissa johdetun luokan nimen jälkeen. Harkitse seuraavaa syntaksia periäksesi perusluokan johdettuun luokkaan.

Pythonin perintö

Syntaksi

 class derived-class(base class): 

Luokka voi periä useita luokkia mainitsemalla ne kaikki hakasulkeissa. Harkitse seuraavaa syntaksia.

Syntaksi

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

Esimerkki 1

 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() 

Lähtö:

 dog barking Animal Speaking 

Python monitasoinen perintö

Monitasoinen periytyminen on mahdollista pythonissa kuten muissakin oliokielissä. Monitasoinen perintö arkistoidaan, kun johdettu luokka perii toisen johdetun luokan. Ei ole rajoitettua määrää tasoja, joihin asti monitasoinen perintö arkistoidaan pythonissa.

Pythonin perintö

Monitasoisen periytymisen syntaksi on annettu alla.

Syntaksi

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

Esimerkki

 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() 

Lähtö:

 dog barking Animal Speaking Eating bread... 

Python Moniperintö

Python tarjoaa meille joustavuuden periä useita perusluokkia aliluokkaan.

Pythonin perintö

Syntaksi usean perinnän suorittamiseksi on annettu alla.

Syntaksi

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

Esimerkki

 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)) 

Lähtö:

 30 200 0.5 

Issubclass(sub,sup) -menetelmä

Issubclass(sub, sup) -menetelmää käytetään määritettyjen luokkien välisten suhteiden tarkistamiseen. Se palauttaa tosi, jos ensimmäinen luokka on toisen luokan alaluokka, ja epätosi muussa tapauksessa.

Harkitse seuraavaa esimerkkiä.

Esimerkki

 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)) 

Lähtö:

 True False 

Isinstance (obj, class) -menetelmä

Isinstance()-menetelmää käytetään objektien ja luokkien välisen suhteen tarkistamiseen. Se palauttaa arvon tosi, jos ensimmäinen parametri eli obj on toisen parametrin eli luokan esiintymä.

Harkitse seuraavaa esimerkkiä.

Esimerkki

 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)) 

Lähtö:

 True 

Menetelmän ohittaminen

Voimme tarjota tietyn emoluokan menetelmän toteutuksen lapsiluokassamme. Kun emoluokan menetelmä on määritelty lapsiluokassa jollain tietyllä toteutuksella, konseptia kutsutaan menetelmän ohitukseksi. Saatamme joutua suorittamaan menetelmän ohituksen tilanteessa, jossa aliluokkaan tarvitaan erilainen ylätason luokan menetelmän määritelmä.

pino ds

Harkitse seuraavaa esimerkkiä menetelmän ohituksen suorittamiseksi pythonissa.

Esimerkki

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

Lähtö:

 Barking 

Tosielämän esimerkki menetelmän ohittamisesta

 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()); 

Lähtö:

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

Tietojen abstraktio pythonissa

Abstraktio on tärkeä osa olio-ohjelmointia. Pythonissa voimme myös piilottaa tiedot lisäämällä kaksoisalaviivan (___) etuliitteeksi piilotettavaan määritteeseen. Tämän jälkeen attribuutti ei näy luokan ulkopuolella objektin kautta.

Harkitse seuraavaa esimerkkiä.

Esimerkki

 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() 

Lähtö:

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