Python OOPs: Klasse, Objekt, Arv og Konstruktør med Eksempel

OOPs ind Python

OOPs ind Python er en programmeringstilgang, der fokuserer på at bruge objekter og klasser på samme måde som andre generelle programmeringssprog. Objekterne kan være alle enheder i den virkelige verden. Python giver udviklere mulighed for at udvikle applikationer ved hjælp af OOPs tilgang med hovedfokus på genbrugbar kode. Det er meget nemt at oprette klasser og objekter i Python.

Hvad er en klasse?

En klasse i Python er en logisk gruppering af data og funktioner. Det giver frihed til at skabe datastrukturer, der indeholder vilkårligt indhold og dermed let tilgængelige.

For eksempel vil enhver bankmedarbejder, der ønsker at hente kundeoplysningerne online gå til kundeklasse, hvor alle dens attributter som transaktionsdetaljer, udbetalings- og indbetalingsdetaljer, udestående gæld osv. vil blive opført.

Sådan defineres Python klasser

For at definere klasse skal du overveje følgende punkter

Trin 1) In Python, klasser er defineret af "Klasse" søgeord

class myClass():

Trin 2) Inde i klasser kan du definere funktioner eller metoder, der er en del af denne klasse

def method1 (self):
   print "Guru99"
def method2 (self,someString): 
   print "Software Testing:" + someString
  • Her har vi defineret metode1, der udskriver "Guru99."
  • En anden metode, vi har defineret, er metode2, der udskriver "Software Testing"+ SomeString. SomeString er den variabel, der leveres af den kaldende metode

Trin 3) Alt i en klasse er indrykket, ligesom koden i funktionen, loop, if-sætning osv. Alt, der ikke er indrykket, er ikke i klassen

Definere Python klasser

BEMÆRK: Om at bruge “selv” i Python

  • Selvargumentet refererer til selve objektet. Derfor brugen af ​​ordet selv. Så inde i denne metode vil selv henvise til den specifikke forekomst af dette objekt, der bliver opereret på.
  • Selv er det navn, som konventionen foretrækker af Pythons for at angive den første parameter af instansmetoder i Python. Det er en del af Python syntaks for at få adgang til medlemmer af objekter

Trin 4) At lave et objekt af klassen

c = myClass()

Trin 5) At kalde en metode i en klasse

c.method1()
    c.method2(" Testing is fun")
  • Bemærk, at når vi kalder metode1 eller metode2, behøver vi ikke at angive selvsøgeordet. Det håndteres automatisk for os af Python driftstid.
  • Python runtime vil sende "selv" værdi, når du kalder en instansmetode på i instans, uanset om du angiver den bevidst eller ej
  • Du skal bare bekymre dig om ikke-selv-argumenterne

Trin 6) Her er den komplette kode

# Example file for working with classes
class myClass():
  def method1(self):
      print("Guru99")
        
  def method2(self,someString):    
      print("Software Testing:" + someString)
  
      
def main():           
  # exercise the class methods
  c = myClass ()
  c.method1()
  c.method2(" Testing is fun")
  
if __name__== "__main__":
  main()

Sådan fungerer arv

Arv er en funktion, der bruges i objektorienteret programmering; det refererer til at definere en ny klasse med mindre eller ingen ændring af en eksisterende klasse. Den nye klasse hedder afledt klasse og fra en, som den arver, kaldes den bund. Python understøtter arv; det understøtter også flere arv. En klasse kan arve attributter og adfærdsmetoder fra en anden klasse kaldet underklasse eller arvingklasse.

Definere Python klasser

Python Arvesyntaks

class DerivedClass(BaseClass):
    body_of_derived_class

Trin 1) Kør følgende kode

# Example file for working with classes
class myClass():
  def method1(self):
      print("Guru99")
        
  
class childClass(myClass):
  #def method1(self):
        #myClass.method1(self);
        #print ("childClass Method1")
        
  def method2(self):
        print("childClass method2")     
         
def main():           
  # exercise the class methods
  c2 = childClass()
  c2.method1()
  #c2.method2()

if __name__== "__main__":
  main()

Bemærk, at metode1 i childClass ikke er defineret, men den er afledt fra den overordnede myClass. Outputtet er "Guru99."

Trin 2) Fjern kommentarer Linje #8 & 10. Kør koden

Nu er metode 1 defineret i childClass og output "childClass Method1" vises korrekt.

Trin 3) Fjern kommentar linje #9. Kør koden

Du kan kalde en metode for den overordnede klasse ved hjælp af syntaksen

ParentClassName.MethodName(self)

I vores tilfælde kalder vi, myClass.method1(self) og Guru99 udskrives som forventet

Trin 4) Fjern kommentar linje #19. Kør koden.

Metode 2 i den underordnede klasse kaldes, og "childKlasse metode2" udskrives som forventet.

Python Konstruktører

En konstruktør er en klassefunktion, der instansierer et objekt til foruddefinerede værdier.

Det begynder med en dobbelt understregning (_). Det __init__() metode

I eksemplet nedenfor tager vi navnet på brugeren, der bruger konstruktør.

class User:
    name = ""

    def __init__(self, name):
        self.name = name

    def sayHello(self):
        print("Welcome to Guru99, " + self.name)

User1 = User("Alex")
User1.sayHello()

Output vil være:

Velkommen til Guru99, Alex

Python 2 Eksempel

Ovenstående koder er Python 3 eksempler, hvis du vil løbe ind Python 2 Overvej venligst følgende kode.

# How to define Python classes
# Example file for working with classes
class myClass():
  def method1(self):
      print "Guru99"
        
  def method2(self,someString):    
      print "Software Testing:" + someString
      
   
      
def main():           
  # exercise the class methods
  c = myClass ()
  c.method1()
  c.method2(" Testing is fun")
  
if __name__== "__main__":
  main()


#How Inheritance works
# Example file for working with classes
class myClass():
  def method1(self):
      print "Guru99"
        
      
class childClass(myClass):
  #def method1(self):
        #myClass.method1(self);
        #print "childClass Method1" 
        
  def method2(self):
        print "childClass method2"     
         
def main():           
  # exercise the class methods
  c2 = childClass()
  c2.method1()
  #c2.method2()

if __name__== "__main__":
  main()

Lær vores næste selvstudie om Polymorfi i Python

Resumé

"Klasse" er en logisk gruppering af funktioner og data. Python klasse giver alle standardfunktionerne i objektorienteret programmering.

  • Klasse arvemekanisme
  • En afledt klasse, der tilsidesætter enhver metode i dens basisklasse
  • En metode kan kalde metoden for en basisklasse med samme navn
  • Python Klasser er defineret ved nøgleord ”Klasse” selv
  • Inde i klasser kan du definere funktioner eller metoder, der er en del af klassen
  • Alt i en klasse er indrykket, ligesom koden i funktionen, loop, if-sætning osv.
  • Selvargumentationen i Python refererer til selve objektet. Selv er det navn, som konventionen foretrækker af Pythons for at angive den første parameter af instansmetoder i Python
  • Python runtime vil automatisk sende "selv" værdi, når du kalder en instansmetode på i instans, uanset om du angiver den bevidst eller ej
  • In Python, kan en klasse arve attributter og adfærdsmetoder fra en anden klasse kaldet underklasse eller arvingsklasse.