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
Otwórz praktykę →