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

OOPs inn Python

OOPs inn Python er en programmeringstilnærming som fokuserer på å bruke objekter og klasser på samme måte som andre generelle programmeringsspråk. Objektene kan være alle enheter i den virkelige verden. Python lar utviklere utvikle applikasjoner ved å bruke OOPs-tilnærmingen med hovedfokus på gjenbrukbarhet av kode. Det er veldig enkelt å lage klasser og objekter i Python.

Hva er en klasse?

En klasse i Python er en logisk gruppering av data og funksjoner. Det gir frihet til å lage datastrukturer som inneholder vilkårlig innhold og dermed lett tilgjengelig.

For eksempel, for enhver bankansatt som ønsker å hente kundeopplysningene på nettet, vil gå til kundeklasse, hvor alle dens attributter som transaksjonsdetaljer, uttaks- og innskuddsdetaljer, utestående gjeld osv. vil bli oppført.

Hvordan definere Python klasser

For å definere klasse må du vurdere følgende punkter

Trinn 1) In Python, klasser er definert av "Klasse" søkeord

class myClass():

Trinn 2) Inne i klasser kan du definere funksjoner eller metoder som er en del av denne klassen

def method1 (self):
   print "Guru99"
def method2 (self,someString): 
   print "Software Testing:" + someString
  • Her har vi definert metode1 som skriver ut "Guru99."
  • En annen metode vi har definert er metode2 som skriver ut "Software Testing" + SomeString. SomeString er variabelen som leveres av kallemetoden

Trinn 3) Alt i en klasse er innrykket, akkurat som koden i funksjonen, loopen, if-setningen osv. Alt som ikke er innrykket er ikke i klassen

Definere Python klasser

MERKNADER: Om å bruke «selv» i Python

  • Selvargumentet refererer til selve objektet. Derav bruken av ordet selv. Så inne i denne metoden vil jeg referere til den spesifikke forekomsten av dette objektet som blir operert.
  • Selv er navnet foretrukket av konvensjonen av Pythons for å indikere den første parameteren for instansmetoder i Python. Det er en del av Python syntaks for å få tilgang til medlemmer av objekter

Trinn 4) Å lage et objekt av klassen

c = myClass()

Trinn 5) Å kalle en metode i en klasse

c.method1()
    c.method2(" Testing is fun")
  • Legg merke til at når vi kaller metode1 eller metode2, trenger vi ikke oppgi selvsøkeordet. Det håndteres automatisk for oss av Python kjøretid.
  • Python runtime vil sende "selv" verdi når du kaller en instansmetode på i instans, enten du gir den bevisst eller ikke
  • Du må bare bry deg om ikke-selv-argumentene

Trinn 6) Her er den komplette koden

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

Hvordan arv fungerer

Arv er en funksjon som brukes i objektorientert programmering; det refererer til å definere en ny klasse med mindre eller ingen modifikasjon til en eksisterende klasse. Den nye klassen heter avledet klasse og fra en som den arver kalles basen. Python støtter arv; den støtter også flere arv. En klasse kan arve attributter og atferdsmetoder fra en annen klasse kalt underklasse eller arvingsklasse.

Definere Python klasser

Python Arvesyntaks

class DerivedClass(BaseClass):
    body_of_derived_class

Trinn 1) Kjø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()

Legg merke til at metode1 i childClass ikke er definert, men den er avledet fra overordnet myClass. Utgangen er "Guru99."

Trinn 2) Uncomment Line #8 & 10. Kjør koden

Nå er metode 1 definert i childClass og utdata "childClass Method1" vises riktig.

Trinn 3) Fjern kommentar linje #9. Kjør koden

Du kan kalle en metode for overordnet klasse ved å bruke syntaksen

ParentClassName.MethodName(self)

I vårt tilfelle kaller vi, myClass.method1(self) og Guru99 skrives ut som forventet

Trinn 4) Fjern kommentar linje #19. Kjør koden.

Metode 2 av barneklassen kalles og "barnKlasse metode2" skrives ut som forventet.

Python Konstruktører

En konstruktør er en klassefunksjon som instansierer et objekt til forhåndsdefinerte verdier.

Det begynner med en dobbel understreking (_). Det __init__() metoden

I eksemplet nedenfor tar vi navnet på brukeren som bruker 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()

Utgang vil være:

Velkommen til Guru99, Alex

Python 2 Eksempel

Kodene ovenfor er Python 3 eksempler, hvis du vil løpe inn Python 2 vurder 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 vår neste veiledning om Polymorfisme i Python

Sammendrag

"Klasse" er en logisk gruppering av funksjoner og data. Python klasse gir alle standardfunksjonene til objektorientert programmering.

  • Klasse arvemekanisme
  • En avledet klasse som overstyrer hvilken som helst metode for sin basisklasse
  • En metode kan kalle metoden til en basisklasse med samme navn
  • Python Klasser er definert av nøkkelord "klasse" selv
  • Inne i klasser kan du definere funksjoner eller metoder som er en del av klassen
  • Alt i en klasse er rykket inn, akkurat som koden i funksjonen, loopen, if-setningen osv.
  • Selvargumentet i Python refererer til selve objektet. Selv er navnet foretrukket av konvensjonen av Pythons for å indikere den første parameteren for instansmetoder i Python
  • Python runtime vil overføre "selv" verdi automatisk når du kaller en instansmetode på i instans, enten du gir den bevisst eller ikke
  • In Python, kan en klasse arve attributter og atferdsmetoder fra en annen klasse kalt underklasse eller arvingsklasse.