Welke aanroepen van metaklassemethoden vinden plaats tijdens het definiëren van een nieuwe klasse?
sobes.tech AI
Antwoord van AI
Bij het definiëren van een nieuwe klasse in Python, controleert de metaklasse het proces van het creëren van de klasse. De belangrijkste aanroepen van de metaclass-methoden vinden plaats in de volgende volgorde:
-
__new__— wordt aangeroepen om een nieuw klasseobject te maken (namelijk, de klasse zelf). Hier kunt u de attributen van de klasse wijzigen of voorbereiden voordat deze wordt gemaakt. -
__init__— initialiseert het gemaakte klasseobject, meestal gebruikt voor aanvullende configuratie. -
__call__— wordt aangeroepen bij het maken van instanties van de nieuwe klasse, maar dit gebeurt nadat de klasse is gedefinieerd.
Voorbeeld van een vereenvoudigde metaklasse:
class Meta(type):
def __new__(cls, name, bases, dct):
print(f"Aanmaken van klasse {name}")
return super().__new__(cls, name, bases, dct)
def __init__(cls, name, bases, dct):
print(f"Initialiseren van klasse {name}")
super().__init__(name, bases, dct)
class MyClass(metaclass=Meta):
pass
Bij het uitvoeren zal het volgende worden weergegeven:
Aanmaken van klasse MyClass
Initialiseren van klasse MyClass
Op deze manier worden bij het definiëren van een nieuwe klasse de methoden __new__ en __init__ van de metaklasse aangeroepen.