Benutzer-Werkzeuge

Webseiten-Werkzeuge


python:metaclass

Dies ist eine alte Version des Dokuments!


  • Metaclasses sind Factories die Klassen erstellen
    • also Klassen die Klassen erstellen
  • wenn eine Klasse erstellt wird und keine Metaklasse angegeben wird, wird „type“ als Metaklasse genutzt
    • deswegen sind die meisten Klassen vom Typ „type“
  • man muss bedenken das eine Klasse auch nur ein Objekt ist

Was passiert innerhalb der Metaklasse

  • wird eine neue Klasse erstellt (das die Metaklasse nutzt)
    • wird new der Metaklasse aufgerufen und gibt ein neues Klassen-Objekt zurück
      • wird zusammengebaut entsprechend des Codes mit entsprechendem Name, Methoden/Attributen
    • wird init der Metaklasse aufgerufen
  • wird ein Objekt aus irgendeiner Klasse abgeleitet wird call der Metaklasse aufgerufen

Eigene Metaklasse erstellen/nutzen

  • müssen immer vom Typ „typ“ abgeleitet werden

Nutzen: <shx python> class bla (metaclass=mymetaclass):

pass

<sxh>

python/metaclass.1603454077.txt.gz · Zuletzt geändert: 2020/10/23 13:54 von root