Gibt es einen Grund, bei der Definition einer Metaklasse __new__ statt __init__ zu wählen?
Ich habe immer so etwas wie Metaklassen eingerichtet:
class SomeMetaClass(type):
def __new__(cls, name, bases, dict):
#do stuff here
Aber ich bin gerade auf eine Metaklasse gestoßen, die wie folgt definiert wurde:
class SomeMetaClass(type):
def __init__(self, name, bases, dict):
#do stuff here
Gibt es einen Grund, den einen dem anderen vorzuziehen?
Aktualisieren: Denken Sie daran, dass ich über die Verwendung fragen__new__
und__init__
in einer Metaklasse. Ich verstehe bereits den Unterschied zwischen ihnen in einer anderen Klasse. Aber in einer Metaklasse kann ich nicht verwenden__new__
Caching implementieren, weil__new__
wird nur bei der Klassenerstellung in einer Metaklasse aufgerufen.