Benutzer-Werkzeuge

Webseiten-Werkzeuge


python:metaclass
  • 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:

class bla (metaclass=mymetaclass):
  pass

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