Cześć,
właśnie jestem na etapie nauki klas, konkretnie metod magicznych.
-
Spotkałam się z metodą
__new__()
, o której wiem tylko tyle, że ona się wywołuje przed__init__()
. Działa podczas tworzenia obiektu i przekazuje parametry do__init__()
. Próbowałam użyć ją z__init__()
:class ClassA(): def __new__(self, imie, wiek): print("Tworze nowy obiekt") def __init__(self,imie, wiek): self.imiona = imie self.lat = wiek print("Przekazano parametry do init") klasa = ClassA("Daria", 29)
W rezultacie uzyskałam na konsoli napis "Tworze nowy obiekt", ale init nie wystartował. O co konkretnie chodzi z tym
__new__()
i__init__()
? -
Spotkałam się z użyciem w klasie metody magicznej
__class__
. Poniżej podaję przykład:class ClassA: imie = 'Daria' wiek = 21 def change(self): self.__class__.imie = 'Kasia' ClassA.wiek = 22
Nie rozumiem, po co jest tutaj zastosowane
__class__
i co ono robi. Użyłam zamiastself.__class__.imie = 'Kasia'
toself.imie = 'Kasia'
i uzyskałam ten sam wynik. Po co się to stosuje?
Pozdrawiam