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