Middle
Was macht die Methode new im Kontext der Programmiersprache Python?
sobes.tech KI
Antwort von AI
__new__ - ist eine Klassenmethode, die für die Erstellung einer neuen Instanz der Klasse verantwortlich ist. Sie wird vor __init__ aufgerufen und bestimmt, welches Objekt zurückgegeben wird. Wird hauptsächlich verwendet, um einzigartige Objekte (Singleton) oder unveränderliche Objekte (wie Tuple oder Str) zu erstellen.
class Singleton:
_instance = None
def __new__(cls):
# Überprüfen, ob bereits eine Instanz existiert
if cls._instance is None:
# Falls nicht, erstellen wir sie, indem wir die Erstellung an die Elternklasse (object) delegieren
cls._instance = super().__new__(cls)
# Gibt die existierende oder gerade erstellte Instanz zurück
return cls._instance
# Anwendungsbeispiele
s1 = Singleton()
s2 = Singleton()
# Erwartetes Ergebnis: True
print(s1 is s2)
Vergleich zwischen __new__ und __init__:
-
__new__:- Statische Methode (erster Parameter ist
cls). - Wird vor der Instanzerstellung aufgerufen.
- Gibt die erstellte Instanz zurück.
- Statische Methode (erster Parameter ist
-
__init__:- Instanzmethode (erster Parameter ist
self). - Wird nach der Instanzerstellung aufgerufen.
- Gibt keinen Wert zurück (implizit None).
- Wird verwendet, um Attribute des erstellten Objekts zu initialisieren.
- Instanzmethode (erster Parameter ist