Python

Python super() functie

Python super() functie
Een Python-script kan zowel gestructureerd programmeren als Object-Oriented-Programming (OOP) doen. Super () is een ingebouwde Python-functie van OOP. De basiskennis van OOP heeft de voorkeur om het doel en het gebruik van de te begrijpen super() methode. Een van de belangrijke kenmerken van OOP is overerving. Een nieuwe klasse kan worden gemaakt door de kenmerken van een andere klasse over te nemen, en dit wordt Overerving genoemd. Hier wordt de nieuwe klasse subklasse of onderliggende klasse genoemd, en een andere klasse wordt superklasse of bovenliggende klasse genoemd. de super() functie wordt gebruikt in de onderliggende klasse om naar de bovenliggende klasse te verwijzen en toegang te krijgen tot alle variabelen en methoden van de bovenliggende klasse. Deze functie maakt de erfenis beter beheersbaar. Hoe deze functie in Python kan worden gebruikt, wordt in deze tutorial getoond.

Voorbeeld-1: Gebruik van de functie super() in enkele overerving

Wanneer een onderliggende klasse wordt gemaakt door een bovenliggende klasse te erven, wordt dit enkele overerving genoemd. Het gebruik van de super() functie in enkele overerving is weergegeven in het volgende script:. Boek is hier de bovenliggende klasse die een constructormethode bevat om de gegevens te initialiseren, boekType() methode om het type boek af te drukken, en korting() methode om de kortingsaanbieding weer te geven is beschikbaar of niet. Eng_book is de onderliggende klasse hier die een constructormethode bevat waarbij de super() functie wordt gebruikt om de constructor van de bovenliggende klasse aan te roepen. De onderliggende klasse heeft een andere methode genaamd display_details() om de gedetailleerde informatie van het boek af te drukken. De objecten van zowel bovenliggende als onderliggende klassen zijn later gemaakt om de verschillende methoden van de klassen aan te roepen.

# Definieer de bovenliggende klasse
klasse Boek:
# Definieer constructor
def __init__(zelf, titel, auteur, type, aanbieding):
zelf.titel = titel
zelf.auteur = auteur
zelf.type = type
zelf.aanbieding = aanbieding
# Definieer de functie om het boektype weer te geven
def boekType(zelf):
als zelf.typ == 1:
print("%s is een %s boek." %(zelf.titel, 'Techniek'))
als zelf.typ == 2:
print("%s is een %s boek." %(zelf.titel, 'Medisch'))
als zelf.typ == 3:
print("%s is een %s boek." %(zelf.titel, 'Financiën'))
# Definieer de functie om de kortingsaanbieding weer te geven
def korting (mijzelf):
als zelf.aanbieding == Waar:
print("Het boek heeft een kortingsaanbieding.")
anders:
print("Het boek heeft geen kortingsaanbieding.")
# Definieer de onderliggende klasse
class Eng_book(Boek):
# Definieer constructor
def __init__(zelf, titel, auteur, type, aanbieding, prijs):
super().__init__(titel, auteur, type, aanbieding)
zelf.prijs = prijs
# Definieer de functie om de boekdetails weer te geven
def display_details(zelf):
super().korting()
als zelf.aanbieding == Waar:
zelf.prijs = zelf.prijs - zelf.prijs * 0.15
print("Boeknaam :%s" %self.titel)
print("Naam auteur :%s" % zelf.schrijver)
print("Prijs: %0.2f" % zelf.prijs)
print("Gebruik van bovenliggende klasse:")
# Definieer object van bovenliggende klasse
objbook = Boek('Medische Microbiologie', 'Ernest Jawetz, Edward A. Adelberg, Joseph L. Melnick', 2, niet waar)
# Oproepfunctie om boektype weer te geven
objboek.boekType()
# Belfunctie om kortingsaanbieding weer te geven
objboek.korting()
print("\nOnderliggende klasse gebruiken:")
# Definieer object van onderliggende klasse
objEngBook = Eng_book('Engineering Mathematics', 'H K Dass', 1, True, 50)
# Oproepfunctie om boekdetails weer te geven
objEngBoek.display_details()

Uitgang:

De volgende uitvoer zal verschijnen na het uitvoeren van het bovenstaande script:. De eerste uitvoer is gegenereerd door het object van de bovenliggende klasse te gebruiken en de tweede uitvoer is gegenereerd door het object van de onderliggende klasse te gebruiken.

Voorbeeld-2: Gebruik van de functie super() in meerdere overervingen

Wanneer een nieuwe klasse wordt gegenereerd door meerdere klassen te erven, wordt dit type overerving meerdere overervingen genoemd. Het gebruik van de functie super() in meerdere overervingen is aangetoond in het volgende script:. afdeling is de bovenliggende klasse die een constructormethode bevat om de variabelen te initialiseren en de Scherm() methode om de afdelingsnaam af te drukken. Cursussen zijn de onderliggende klasse geërfd van de afdeling klasse, en het bevat een constructormethode en de display_Course_info() methode om de details van de cursus weer te geven. Leraren zijn de onderliggende klasse geërfd van de afdeling klasse, en het bevat een constructormethode en de display_Teacher_info() methode om de details van de leraar weer te geven. Teacher_Cursus is de laatste onderliggende klasse van het script die is gedefinieerd door beide te erven Cursussen en Leraren klassen. De objecten van de drie onderliggende klassen zijn aan het einde van het script gemaakt om toegang te krijgen tot de verschillende methoden van de klassen. De super() functie is gebruikt in de constructormethode van alle onderliggende klassen om de constructor van de bovenliggende klasse aan te roepen. Er zijn vier argumentwaarden vereist om het onderliggende klasseobject te maken, omdat de constructie van de klasse Department vier argumenten bevat.

# Definieer ouderklasse
klasse Afdeling():
def __init__(self, dept_name, total_courses, total_credit, total_teachers):
zelf.dept_name = dept_name
zelf.totaal_cursussen = totaal_cursussen
zelf.totaal_tegoed = totaal_tegoed
zelf.total_teachers = total_teachers
def weergeven (zelf):
print("Afdelingsnaam: %s" % zelf.dept_name)
# Definieer de eerste kindklasse
klas Cursussen (afdeling):
def __init__(zelf, naam, cursussen, credits, docenten):
# Roep de constructor van de ouderklasse aan
super().__init__(naam, cursussen, credits, docenten)
def display_Course_info(zelf):
print("Totaal aantal cursussen: %d" % zelf.totaal_cursussen)
print("Totaal tegoed: %d" % zelf.totaal_tegoed)
# Definieer de tweede kindklasse
klas Leraren (afdeling):
def __init__(zelf, naam, cursussen, credits, docenten):
# Roep de constructor van de ouderklasse aan
super().__init__(naam, cursussen, credits, docenten)
def display_Teacher_info(zelf):
print("Totaal aantal docenten: %d" % zelf.totaal_leraren)
# Definieer de derde onderliggende klasse die is geërfd van twee klassen
class Teacher_Course (cursussen, docenten):
def __init__(zelf, naam, cursussen, credits, docenten):
# Roep de constructor van de bovenliggende klasse aan
super().__init__(naam, cursussen, credits, docenten)
def display_details(zelf):
super().Scherm()
super().display_Course_info()
super().display_Teacher_info()
print("De eerste onderliggende klas gebruiken")
objCourses = Cursussen('CSE', 72, 150, 50)
objCursussen.Scherm()
objCursussen.display_Course_info()
print("\nDe tweede onderliggende klas gebruiken")
objTeachers = Leraren('BBA', 65, 140, 55)
objLeraren.Scherm()
objLeraren.display_Teacher_info()
print("\nDe derde onderliggende klasse gebruiken die is geërfd van meerdere klassen")
objDCT = Teacher_Course('Engels', 60, 122, 20)
objDCT.display_details()

Uitgang:

De volgende uitvoer zal verschijnen na het uitvoeren van het bovenstaande script:. Er zijn hier drie uitvoer gegenereerd door de objecten van drie onderliggende klassen te maken.

Conclusie:

De super() functie kan alleen binnen de onderliggende klasse worden gebruikt om de constructor en elke andere bovenliggende klassemethode aan te roepen. Het gebruik van deze functie is in deze zelfstudie aangetoond door overerving op één en meerdere niveaus te maken. Ik hoop dat het doel van het gebruik van deze functie in OOP zal worden gewist na het lezen van deze tutorial.

Voeg muisbewegingen toe aan Windows 10 met deze gratis tools
In de afgelopen jaren zijn computers en besturingssystemen sterk geëvolueerd. Er was een tijd dat gebruikers opdrachten moesten gebruiken om door best...
Beheer en beheer muisbewegingen tussen meerdere monitoren in Windows 10
Muisbeheer voor twee schermen laat je muisbewegingen tussen meerdere monitoren controleren en configureren door de bewegingen nabij de grens te vertra...
Met WinMouse kunt u de beweging van de muisaanwijzer op Windows-pc aanpassen en verbeteren
Als u de standaardfuncties van uw muisaanwijzer wilt verbeteren, gebruik dan freeware WinMuis. Het voegt meer functies toe om u te helpen het meeste u...