Middle
Wat doet de methode new in de context van de Python-taal?
sobes.tech AI
Antwoord van AI
__new__ - is een klasse-methode die verantwoordelijk is voor het maken van een nieuw exemplaar van de klasse. Het wordt voor __init__ aangeroepen en bepaalt welk object wordt geretourneerd. Het wordt vooral gebruikt voor het maken van unieke objecten (Singleton) of onveranderlijke typen (zoals tuple of str).
class Singleton:
_instance = None
def __new__(cls):
# Controleer of er al een instantie bestaat
if cls._instance is None:
# Zo niet, maak er een door de creatie te delegeren aan de ouderklasse (object)
cls._instance = super().__new__(cls)
# Geef de bestaande of net gemaakte instantie terug
return cls._instance
# Voorbeeldgebruik
s1 = Singleton()
s2 = Singleton()
# Verwacht resultaat: True
print(s1 is s2)
Vergelijking tussen __new__ en __init__:
-
__new__:- Statische methode (de eerste parameter is
cls). - Wordt voor het maken van de instantie aangeroepen.
- Geeft de gemaakte instantie terug.
- Statische methode (de eerste parameter is
-
__init__:- Instantiemethode (de eerste parameter is
self). - Wordt na het maken van de instantie aangeroepen.
- Geeft geen waarden terug (retourneert impliciet None).
- Wordt gebruikt om de attributen van het gemaakte object te initialiseren.
- Instantiemethode (de eerste parameter is