Python- tutoriaal

Python TUIS Python Intro Python Begin Python-sintaksis Python-kommentaar Python veranderlikes Python-datatipes Python-nommers Python Casting Python Strings Python Booleans Python-operateurs Python-lyste Python Tuples Python-stelle Python Woordeboeke Python As...Anders Python While Loops Python vir lusse Python-funksies Python Lambda Python-skikkings Python-klasse/-voorwerpe Python Erfenis Python Iterators Python-omvang Python-modules Python-datums Python Wiskunde Python JSON Python RegEx Python PIP Python Probeer ... Behalwe Python-gebruikersinvoer Python String Formatering

Lêerhantering

Python-lêerhantering Python Lees lêers Python Skryf/skep lêers Python verwyder lêers

Python-modules

NumPy Tutoriaal Panda Walkthrough Scipy Tutoriaal

Python Matplotlib

Matplotlib Intro Matplotlib Begin Matplotlib Pyplot Matplotlib Plotte Matplotlib Merkers Matplotlib-lyn Matplotlib-etikette Matplotlib-rooster Matplotlib Subplotte Matplotlib Scatter Matplotlib Bars Matplotlib Histogramme Matplotlib sirkeldiagramme

Masjienleer

Aan die gang kom Gemiddelde mediaanmodus Standaard afwyking Persentiel Dataverspreiding Normale dataverspreiding Strooi plot Lineêre regressie Polinoomregressie Meervoudige regressie Skaal Trein/toets Besluitboom

Python MySQL

MySQL Begin MySQL Skep databasis MySQL Skep tabel MySQL-insetsel MySQL Kies MySQL Waar MySQL Bestel deur MySQL verwyder MySQL Drop Table MySQL-opdatering MySQL-limiet MySQL Sluit aan

Python MongoDB

MongoDB Begin MongoDB Skep databasis MongoDB Skep versameling MongoDB-insetsel MongoDB Vind MongoDB-navraag MongoDB Sorteer MongoDB verwyder MongoDB Drop Collection MongoDB-opdatering MongoDB-limiet

Python-verwysing

Python Oorsig Python ingeboude funksies Python-stringmetodes Python Lys Metodes Python Woordeboek Metodes Python Tuple Metodes Python Stel metodes Python-lêermetodes Python sleutelwoorde Python-uitsonderings Python Woordelys

Moduleverwysing

Ewekansige module Versoeke Module Statistiek Module Wiskunde Module cMath-module

Python Hoe om

Verwyder lys duplikate Draai 'n snaar om Voeg twee getalle by

Python voorbeelde

Python voorbeelde Python-samesteller Python-oefeninge Python Vasvra Python-sertifikaat

Python Erfenis


Python Erfenis

Oorerwing laat ons toe om 'n klas te definieer wat al die metodes en eienskappe van 'n ander klas erf.

Ouerklas is die klas waarvandaan geërf word, ook genoem basisklas.

Kinderklas is die klas wat van 'n ander klas erf, ook genoem afgeleide klas.


Skep 'n ouerklas

Enige klas kan 'n ouerklas wees, so die sintaksis is dieselfde as om enige ander klas te skep:

Voorbeeld

Skep 'n klas met die naam Person, met firstnameen lastnameeienskappe, en 'n printnamemetode:

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

Skep 'n Kinderklas

Om 'n klas te skep wat die funksionaliteit van 'n ander klas erf, stuur die ouerklas as 'n parameter wanneer die kinderklas geskep word:

Voorbeeld

Skep 'n klas met die naam Student, wat die eienskappe en metodes van die Personklas sal erf:

class Student(Person):
  pass

Let wel: Gebruik die pass sleutelwoord wanneer jy nie enige ander eienskappe of metodes by die klas wil voeg nie.

Nou het die Studenteklas dieselfde eienskappe en metodes as die Persoonklas.

Voorbeeld

Gebruik die Studentklas om 'n objek te skep, en voer dan die printnamemetode uit:

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


Voeg die __init__() funksie by

Tot dusver het ons 'n kinderklas geskep wat die eienskappe en metodes van sy ouer erf.

Ons wil die __init__()funksie by die kinderklas voeg (in plaas van die passsleutelwoord).

Let wel: Die __init__()funksie word outomaties geroep elke keer as die klas gebruik word om 'n nuwe objek te skep.

Voorbeeld

Voeg die __init__()funksie by die Studentklas:

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

Wanneer jy die __init__()funksie byvoeg, sal die kinderklas nie meer die ouer se __init__()funksie erf nie.

Let wel: Die kind se __init__() funksie ignoreer die oorerwing van die ouer se __init__()funksie.

Om die oorerwing van die ouer se __init__() funksie te behou, voeg 'n oproep by die ouer se __init__()funksie:

Voorbeeld

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

Nou het ons die funksie __init__() suksesvol bygevoeg, en die oorerwing van die ouerklas behou, en ons is gereed om funksionaliteit in die __init__()funksie by te voeg.


Gebruik die super() funksie

Python het ook 'n super()funksie wat die kinderklas al die metodes en eienskappe van sy ouer sal laat erf:

Voorbeeld

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

Deur die super()funksie te gebruik, hoef jy nie die naam van die ouerelement te gebruik nie, dit sal outomaties die metodes en eienskappe van sy ouer erf.


Voeg eienskappe by

Voorbeeld

Voeg 'n eienskap wat graduationyearby die Studentklas genoem word:

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

In die voorbeeld hieronder moet die jaar 2019'n veranderlike wees en in die Studentklas deurgegee word wanneer studente-objekte geskep word. Om dit te doen, voeg nog 'n parameter in die __init__() funksie by:

Voorbeeld

Voeg 'n yearparameter by en slaag die korrekte jaar wanneer voorwerpe geskep word:

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

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

Voeg metodes by

Voorbeeld

Voeg 'n metode geroep welcomeby die Studentklas:

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)

As jy 'n metode in die kinderklas byvoeg met dieselfde naam as 'n funksie in die ouerklas, sal die oorerwing van die ouermetode oorheers word.


Toets jouself met oefeninge

Oefening:

Wat is die korrekte sintaksis om 'n klas genaamd Student te skep wat eienskappe en metodes van 'n klas genaamd Persoon sal erf?

class :