Python -zelfstudie

Python HOME Python-intro Python Aan de slag Python-syntaxis Python-opmerkingen Python-variabelen Python-gegevenstypen Python-nummers Python-casting Python-snaren Python Booleans Python-operators Python-lijsten Python-tupels Python-sets Python-woordenboeken Python Als...Anders Python While-lussen Python voor lussen Python-functies Python Lambda Python-arrays Python-klassen/objecten Python-overerving Python-iterators Python-bereik Python-modules Python-datums Python-wiskunde Python JSON Python RegEx Python PIP Python proberen...Behalve Python-gebruikersinvoer Opmaak van Python-tekenreeksen

Bestandsbehandeling

Python-bestandsafhandeling Python-bestanden lezen Python bestanden schrijven/maken Python bestanden verwijderen

Python-modules

NumPy-zelfstudie Panda walkthrough Scipy-zelfstudie

Python Matplotlib

Matplotlib Intro Matplotlib Aan de slag Matplotlib Pyplot Matplotlib plotten Matplotlib-markeringen Matplotlib-lijn Matplotlib-labels Matplotlib-raster Matplotlib-subplots Matplotlib Scatter Matplotlib-repen Matplotlib-histogrammen Matplotlib-cirkeldiagrammen

Machinaal leren

Beginnen Gemiddelde mediane modus Standaardafwijking percentiel Gegevensdistributie Normale gegevensverdeling Scatterplot Lineaire regressie Polynomiale regressie Meervoudige regressie Schaal Trein/Test Beslissingsboom

Python MySQL

MySQL Aan de slag MySQL Database maken MySQL-tabel maken MySQL-invoeging MySQL Select MySQL Waar MySQL Bestel op MySQL verwijderen MySQL-droptabel MySQL-update MySQL-limiet MySQL Join

Python MongoDB

MongoDB Aan de slag MongoDB Database maken MongoDB Verzameling maken MongoDB invoegen MongoDB Zoeken MongoDB-query MongoDB Sorteren MongoDB verwijderen MongoDB Drop-collectie MongoDB-update MongoDB-limiet

Python-referentie

Python-overzicht Ingebouwde functies van Python Python-stringmethoden Methoden voor Python-lijst Python-woordenboekmethoden Python Tuple-methoden Methoden voor Python-sets Python-bestandsmethoden Python-trefwoorden Python-uitzonderingen Python-woordenlijst

Modulereferentie

Willekeurige module Verzoekmodule Statistiekmodule Wiskundige module cMath-module

Python-instructies

Lijstduplicaten verwijderen Een string omkeren Voeg twee nummers toe

Python-voorbeelden

Python-voorbeelden Python-compiler Python-oefeningen Python-quiz Python-certificaat

Python -overerving


Python-overerving

Overerving stelt ons in staat een klasse te definiëren die alle methoden en eigenschappen van een andere klasse erft.

Bovenliggende klasse is de klasse waarvan wordt geërfd, ook wel basisklasse genoemd.

Onderliggende klasse is de klasse die erft van een andere klasse, ook wel afgeleide klasse genoemd.


Een ouderklas maken

Elke klasse kan een bovenliggende klasse zijn, dus de syntaxis is hetzelfde als het maken van een andere klasse:

Voorbeeld

Maak een klasse met de naam Person, met firstnameen lastnameeigenschappen, en een printnamemethode:

class Person:
  def __init__(self, fname, lname):
    self.firstname = fname
    self.lastname = lname

  def printname(self):
    print(self.firstname, self.lastname)

#Use the Person class to create an object, and then execute the printname method:

x = Person("John", "Doe")
x.printname()

Een kinderklas maken

Als u een klasse wilt maken die de functionaliteit van een andere klasse erft, verzendt u de bovenliggende klasse als parameter bij het maken van de onderliggende klasse:

Voorbeeld

Maak een klasse met de naam Student, die de eigenschappen en methoden van de klasse zal erven Person:

class Student(Person):
  pass

Opmerking: gebruik het pass trefwoord als u geen andere eigenschappen of methoden aan de klasse wilt toevoegen.

De klasse Student heeft nu dezelfde eigenschappen en methoden als de klasse Person.

Voorbeeld

Gebruik de Studentklasse om een ​​object te maken en voer vervolgens de printnamemethode uit:

x = Student("Mike", "Olsen")
x.printname()


Voeg de __init__() Functie toe

Tot nu toe hebben we een onderliggende klasse gemaakt die de eigenschappen en methoden van de bovenliggende klasse erft.

We willen de __init__()functie toevoegen aan de onderliggende klasse (in plaats van het passsleutelwoord).

Opmerking: de __init__()functie wordt automatisch aangeroepen elke keer dat de klasse wordt gebruikt om een ​​nieuw object te maken.

Voorbeeld

Voeg de __init__()functie toe aan de Studentklasse:

class Student(Person):
  def __init__(self, fname, lname):
    #add properties etc.

Wanneer u de __init__()functie toevoegt, neemt de onderliggende klasse niet langer de functie van de bovenliggende over __init__().

Opmerking:__init__() de functie van het kind heeft voorrang op de overerving van de functie van de ouder __init__().

Om de overerving van de bovenliggende __init__() functie te behouden, voegt u een aanroep toe aan de bovenliggende __init__()functie:

Voorbeeld

class Student(Person):
  def __init__(self, fname, lname):
    Person.__init__(self, fname, lname)

Nu hebben we met succes de functie __init__() toegevoegd en de overerving van de bovenliggende klasse behouden, en we zijn klaar om functionaliteit aan de __init__()functie toe te voegen.


Gebruik de functie super()

Python heeft ook een super()functie die ervoor zorgt dat de onderliggende klasse alle methoden en eigenschappen van zijn bovenliggende klasse erft:

Voorbeeld

class Student(Person):
  def __init__(self, fname, lname):
    super().__init__(fname, lname)

Door de super()functie te gebruiken, hoeft u de naam van het bovenliggende element niet te gebruiken, het zal automatisch de methoden en eigenschappen van het bovenliggende element erven.


Eigenschappen toevoegen

Voorbeeld

Voeg een aangeroepen eigenschap graduationyeartoe aan de Studentklasse:

class Student(Person):
  def __init__(self, fname, lname):
    super().__init__(fname, lname)
    self.graduationyear = 2019

In het onderstaande voorbeeld moet het jaar 2019een variabele zijn en worden doorgegeven aan de Studentklas bij het maken van leerlingobjecten. Voeg hiervoor nog een parameter toe aan de functie __init__():

Voorbeeld

Voeg een yearparameter toe en geef het juiste jaar door bij het maken van objecten:

class Student(Person):
  def __init__(self, fname, lname, year):
    super().__init__(fname, lname)
    self.graduationyear = year

x = Student("Mike", "Olsen", 2019)

Methoden toevoegen

Voorbeeld

Voeg een methode toe die welcomeaan de Studentklasse wordt aangeroepen:

class Student(Person):
  def __init__(self, fname, lname, year):
    super().__init__(fname, lname)
    self.graduationyear = year

  def welcome(self):
    print("Welcome", self.firstname, self.lastname, "to the class of", self.graduationyear)

Als u een methode in de onderliggende klasse toevoegt met dezelfde naam als een functie in de bovenliggende klasse, wordt de overerving van de bovenliggende methode overschreven.


Test jezelf met oefeningen

Oefening:

Wat is de juiste syntaxis om een ​​klasse met de naam Student te maken die eigenschappen en methoden zal erven van een klasse met de naam Person?

class :