Przejdź do treści głównej
🔒 Tryb podglądu. Pierwszych piętnaście lekcji Foundations jest darmowych; ta jest Pro. Rozpocznij 7-dniowy trial, aby odblokować edytor, podpowiedzi AI i resztę kursu. Wymagana karta, anulujesz w dowolnym momencie w Dashboard.Rozpocznij 7-dniowy trial →
← KursySenior Deep-DivesModule 7 · Memory, GC, modern typing@dataclass(frozen=True) + dataclasses.replace — immutable updatespredict122 / 161
+150 XP
Zadanie
📝 **Zadanie:** Przewiduj dokładny wynik. Zamrożonego punktu nie można bezpośrednio zmutować; „replace” zwraca NOWĄ instancję z nazwanymi przesłonięciami; równość jest według wartości, haszowanie jest zgodne z równością. 📋 Zaimplementuj powyższą funkcję. Testy uruchamiają się automatycznie. 💡 **Wskazówka:** Jeśli utkniesz, przeczytaj ponownie teorię.
Przewiduj wynik

Przeczytaj kod uważnie

from dataclasses import dataclass, replace, FrozenInstanceError


@dataclass(frozen=True)
class Point:
    x: int
    y: int


p = Point(1, 2)
print(p)

try:
    p.x = 99
except FrozenInstanceError:
    print("frozen")

p2 = replace(p, y=20)
print(p2)
print(p is p2)
print(p == Point(1, 2))
print(hash(p) == hash(Point(1, 2)))

p3 = replace(p, x=100, y=200)
print(p3)

Co wypisze program? Napisz tutaj:

💬 Dyskusja

Zadaj pierwsze pytanie lub podziel się wskazówką.
Zaloguj się aby dołączyć do dyskusji. Czytanie jest darmowe.
Ładowanie dyskusji…