Python OOP's: klasse, object, overerving en constructor met voorbeeld

Inhoudsopgave:

Anonim

OOP's in Python

OOP's in Python is een programmeerbenadering die zich richt op het gebruik van objecten en klassen, net als in andere algemene programmeertalen. De objecten kunnen alle werkelijke entiteiten zijn. Python stelt ontwikkelaars in staat applicaties te ontwikkelen met behulp van de OOP-benadering met de belangrijkste focus op herbruikbaarheid van code. Het is heel gemakkelijk om klassen en objecten in Python te maken.

Wat is een klas?

Een klasse in 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.

Elke bankmedewerker die de klantgegevens online wil ophalen, gaat bijvoorbeeld naar de klantenklasse , waar al zijn attributen zoals transactiegegevens, opname- en stortingsgegevens, uitstaande schulden, enz. Worden vermeld.

In deze tutorial zullen we leren,

  • Hoe Python-klassen te definiëren
  • Hoe Inheritance werkt
  • Python-constructeurs

Hoe Python-klassen te definiëren

Om klasse te definiëren, moet u de volgende punten in overweging nemen

Stap 1) In Python worden klassen gedefinieerd door het sleutelwoord "Class"

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 method2 die "Software Testing" + SomeString afdrukt. SomeString is de variabele die wordt geleverd door de aanroepende methode

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

OPMERKING : over het gebruik van "self" in Python

  • Het zelfargument verwijst naar het object zelf. Vandaar het gebruik van het woord zelf. Dus binnen deze methode verwijst self naar de specifieke instantie van dit object waaraan wordt geopereerd.
  • Zelf is de naam die volgens afspraak door Pythons de voorkeur heeft om de eerste parameter van instantiemethoden in Python aan te geven. Het maakt deel uit van de Python-syntaxis om toegang te krijgen tot leden van objecten

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

c = myClass()

Stap 5) Om een ​​methode in een klas aan te roepen

c.method1()c.method2(" Testing is fun")
  • Merk op dat wanneer we de methode1 of methode2 aanroepen, we het self-trefwoord niet hoeven op te geven. Dat wordt automatisch voor ons afgehandeld door de Python-runtime.
  • Python-runtime geeft de "self" -waarde door wanneer u een instantiemethode aanroept, of u deze nu opzettelijk opgeeft of niet
  • Je hoeft alleen maar om de niet-zelf-argumenten te geven

Stap 6) Hier is de volledige code

# Voorbeeldbestand voor het werken met klassenklasse myClass ():def method1 (zelf):print ("Guru99")def method2 (self, someString):print ("Software testen: + someString)def hoofd ():# oefen de klassemethoden uitc = myClass ()c.method1 ()c.method2 ("Testen is leuk")if __name __ == "__main__":hoofd()

Hoe Inheritance 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 van een bestaande klasse. De nieuwe klasse wordt een afgeleide klasse genoemd en van een klasse die hij erft, wordt de basis genoemd . Python ondersteunt overerving; het ondersteunt ook meerdere overervingen . Een klasse kan attributen en gedragsmethoden erven van een andere klasse die subklasse of erfgenaam wordt genoemd.

Syntaxis van Python-overerving

class DerivedClass(BaseClass):body_of_derived_class

Stap 1) Voer de volgende code uit

# Voorbeeldbestand voor het werken met klassenklasse myClass ():def method1 (zelf):print ("Guru99")class childClass (myClass):#def method1 (zelf):# myClass.method1 (zelf);#print ("childClass Method1")def method2 (zelf):print ("childClass method2")def hoofd ():# oefen de klassemethoden uitc2 = childClass ()c2.method1 ()# c2.method2 ()if __name __ == "__main__":hoofd()

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

Stap 2) Uncomment Line # 8 & 10. Voer de code uit

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

Stap 3) Uncomment Line # 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 ) Uncomment Line # 19. Voer de code uit.

Methode 2 van de kindklasse wordt aangeroepen en "childClass method2" wordt afgedrukt zoals verwacht.

Python-constructeurs

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

Het begint met een dubbel onderstrepingsteken (_). Het __init __ () methode

In onderstaand voorbeeld nemen we de naam van de gebruiker met constructor.

class User:name = ""def __init__(self, name):self.name = namedef sayHello(self):print("Welcome to Guru99, " + self.name)User1 = User("Alex")User1.sayHello()

De output zal zijn:

Welkom bij Guru99, Alex

Python 2-voorbeeld

Bovenstaande codes zijn Python 3-voorbeelden. Als je in Python 2 wilt draaien, overweeg dan de volgende code.

# How to define Python classes# Example file for working with classesclass myClass():def method1(self):print "Guru99"def method2(self,someString):print "Software Testing: + someStringdef main():# exercise the class methodsc = myClass ()c.method1()c.method2(" Testing is fun")if __name__== "__main__":main()#How Inheritance works# Example file for working with classesclass 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 methodsc2 = childClass()c2.method1()#c2.method2()if __name__== "__main__":main()

Overzicht:

"Klasse" is een logische groepering van functies en gegevens. Python-klasse biedt alle standaardfuncties van Object Oriented Programming.

  • Overervingsmechanisme van klassen
  • 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 door het trefwoord "class" 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 argument self in Python verwijst naar het object zelf. Zelf is de naam die volgens afspraak door Pythons de voorkeur heeft om de eerste parameter van instantiemethoden in Python aan te geven
  • Python-runtime geeft automatisch de "self" -waarde door wanneer u een instantiemethode aanroept, of u deze nu opzettelijk opgeeft of niet
  • In Python kan een klasse attributen en gedragsmethoden erven van een andere klasse die subklasse of erfgenaam wordt genoemd.