Rozdział 14 · Tworzenie rzeczywistych obiektów
Praktyka: dataclass
Tovar Rozdział 14.14, ale krótko mówiąc, @dataclass przejmuje kod standardowy.
Praktyka: Tovar jako dataclass
Przeróbka Tovar od sekcji 14.14 do
@dataclass:
tovar_dataclass.py
from dataclasses import dataclass
@dataclass
class Tovar:
nazvanie: str
tsena: float
def so_skidkoj(self, protsent):
return self.tsena * (1 - protsent / 100)
knigi = Tovar(„Book”, 590)
print(knigi) # Tovar(nazvanie='Książka', tsena=590)
print(knigi.so_skidkoj(10)) # 531.0
__eq__ jest darmowy
Tovar("Книга", 590) == Tovar("Книга", 590) — True, chociaż nie pisaliśmy __eq__ ręcznie ani razu: dataclass porównuje wartości wszystkich pól automatycznie.★★ Zadanie samodzielne
Zakaz jak dataclass
Zdefiniuj @dataclass Zakaz z polami tovar: Tovar i kolichestvo: int oraz metodą summa(self), która zwraca self.tovar.tsena * self.kolichestvo.
Praktyka: dataclass Tovar
interaktywny laptop bezpośrednio w przeglądarce – Python 3.14 przez Pyodide, bez instalacji