Python OOP's: Klasse, Object, Overerving en Constructor met voorbeeld

OOP's in Python

OOP's in Python is een programmeeraanpak die zich richt op het gebruik van objecten en klassen op dezelfde manier als andere algemene programmeertalen. De objecten kunnen elke echte entiteit zijn. Python stelt ontwikkelaars in staat applicaties te ontwikkelen met behulp van de OOPs-aanpak, met de nadruk op herbruikbaarheid van code. Het is heel eenvoudig om klassen en objecten te maken Python.

Wat is een klasse?

Een klasse binnen Python is een logische groepering van gegevens en functies. Het geeft de vrijheid om datastructuren te creëren die willekeurige inhoud bevatten en dus gemakkelijk toegankelijk zijn.

Voor elke bankmedewerker die bijvoorbeeld online de klantgegevens wil ophalen, zou dit naar klant klasse, waar alle kenmerken, zoals transactiegegevens, opname- en stortingsgegevens, openstaande schulden, etc., worden vermeld.

Hoe te definiëren? Python klassen

Om een ​​klasse te definiëren, moet u rekening houden met de volgende punten

Stap 1) In Python, klassen worden gedefinieerd door de "Klas" trefwoord

class myClass():

Stap 2) Binnen klassen kunt u functies of methoden definiëren die deel uitmaken van deze klasse

def method1 (self):
   print "Guru99"
def method2 (self,someString): 
   print "Software Testing:" + someString
  • Hier hebben we methode1 gedefinieerd die “Guru99” afdrukt.
  • Een andere methode die we hebben gedefinieerd is methode2 die “Software Testing”+ SomeString afdrukt. SomeString is de variabele die wordt geleverd door de aanroepende methode

Stap 3) Alles in een klasse is ingesprongen, net als de code in de functie, lus, if-instructie, enz. Alles wat niet is ingesprongen, zit niet in de klasse

Definiëren Python klassen

NOTITIE: Over het gebruik van “zelf” in Python

  • Het zelfargument verwijst naar het object zelf. Vandaar het gebruik van het woord zelf. Dus binnen deze methode zal zelf verwijzen naar de specifieke instantie van dit object waarop wordt gewerkt.
  • Zelf is de naam die volgens afspraak de voorkeur heeft Pythons om de eerste parameter van instantiemethoden in aan te geven Python. Het is onderdeel van de Python syntaxis om toegang te krijgen tot leden van objecten

Stap 4) Om een ​​object van de klasse te maken

c = myClass()

Stap 5) Een methode in een klasse aanroepen

c.method1()
    c.method2(" Testing is fun")
  • Merk op dat wanneer we methode1 of methode2 aanroepen, we het trefwoord self niet hoeven op te geven. Dat wordt automatisch voor ons afgehandeld door de Python looptijd.
  • Python runtime zal de “self”-waarde doorgeven wanneer u een instance-methode aanroept in instance, of u deze nu opzettelijk opgeeft of niet
  • Je hoeft alleen maar rekening te houden met de niet-zelfargumenten

Stap 6) Hier is de volledige code

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

Hoe erfenis werkt

Overerving is een functie die wordt gebruikt bij objectgeoriënteerd programmeren; het verwijst naar het definiëren van een nieuwe klasse met minder of geen wijziging aan een bestaande klasse. De nieuwe klasse wordt gebeld afgeleide klasse en van degene die het erft, wordt de genoemd baseren. Python ondersteunt erfenis; het ondersteunt ook meerdere erfenissen. Een klasse kan attributen en gedragsmethoden erven van een andere klasse, de zogenaamde subklasse of erfgenaamklasse.

Definiëren Python klassen

Python Overerving syntaxis

class DerivedClass(BaseClass):
    body_of_derived_class

Stap 1) Voer de volgende code uit

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

Merk op dat de in childClass, method1 niet is gedefinieerd, maar is afgeleid van de bovenliggende myClass. De uitvoer is “Guru99.”

Stap 2) Verwijder commentaarregel # 8 en 10. Voer de code uit

Nu is methode 1 gedefinieerd in de childClass en wordt de uitvoer “childClass Method1” correct weergegeven.

Stap 3) Ontcommentarieer regel #9. Voer de code uit

U kunt een methode van de bovenliggende klasse aanroepen met behulp van de syntaxis

ParentClassName.MethodName(self)

In ons geval noemen we myClass.method1(self) en wordt Guru99 afgedrukt zoals verwacht

Stap 4) Verwijder commentaarregel #19. Voer de code uit.

Methode 2 van de onderliggende klasse wordt aangeroepen en “childClass method2” wordt zoals verwacht afgedrukt.

Python constructors

Een constructor is een klassefunctie die een object instantieert naar vooraf gedefinieerde waarden.

Het begint met een dubbele onderstrepingsteken (_). Het is een __init__()-methode

In het onderstaande voorbeeld nemen we de naam van de gebruiker met behulp van de constructor.

class User:
    name = ""

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

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

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

De uitvoer zal zijn:

Welkom bij Guru99, Alex

Python 2 Voorbeeld

Bovenstaande codes zijn Python 3 voorbeelden, als je wilt binnenlopen Python 2. Houd rekening met de volgende code.

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

Leer onze volgende tutorial over Polymorfisme in Python

Samenvatting

“Klasse” is een logische groepering van functies en gegevens. Python class biedt alle standaardfuncties van Object Oriented Programming.

  • Klasse-overervingsmechanisme
  • Een afgeleide klasse die elke methode van de basisklasse overschrijft
  • Een methode kan de methode van een basisklasse met dezelfde naam aanroepen
  • Python Klassen worden gedefinieerd op trefwoord "klasse" zelf
  • Binnen klassen kunt u functies of methoden definiëren die deel uitmaken van de klasse
  • Alles in een klasse is ingesprongen, net als de code in de functie, lus, if-instructie, enz.
  • Het zelfargument in Python verwijst naar het object zelf. Zelf is de naam die volgens afspraak de voorkeur heeft Pythons om de eerste parameter van instantiemethoden in aan te geven Python
  • Python runtime geeft automatisch de “self”-waarde door wanneer u een instance-methode aanroept in instance, of u deze nu opzettelijk opgeeft of niet
  • In Python, kan een klasse attributen en gedragsmethoden erven van een andere klasse, de zogenaamde subklasse of erfgenaamklasse.