{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "2f76afc1",
   "metadata": {},
   "source": [
    "# 14-24 · Praktyka: dataclass\n",
    "\n",
    "Praktyka do sekcji [„Praktyka: dataclass”"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "67c6424d",
   "metadata": {},
   "source": [
    "## Cel\n",
    "\n",
    "Przepisz Tovar rozdziału 14.14 przez @dataclass i zgromadzić wokół niego Zakaz."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ec8192e3",
   "metadata": {},
   "source": [
    "## Sprawa robocza"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "550774b8",
   "metadata": {},
   "outputs": [],
   "source": [
    "from dataclasses import dataclass\n",
    "\n",
    "@dataclass\n",
    "class Tovar:\n",
    "    nazvanie: str\n",
    "    tsena: float\n",
    "\n",
    "    def so_skidkoj(self, protsent):\n",
    "        return self.tsena * (1 - protsent / 100)\n",
    "\n",
    "knigi = Tovar(\"Книга\", 590)\n",
    "print(knigi)\n",
    "print(knigi.so_skidkoj(10))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "538890dd",
   "metadata": {},
   "source": [
    "## Zadanie niezależne od zadania ★★\n",
    "\n",
    "Zdefiniuj `@dataclass Zakaz` z marginesami `tovar: Tovar` oraz `kolichestvo: int`i metoda `summa()`powrót `self.tovar.tsena * self.kolichestvo`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "6cc7d053",
   "metadata": {},
   "outputs": [],
   "source": [
    "@dataclass\n",
    "class Zakaz:\n",
    "    tovar: Tovar\n",
    "    kolichestvo: int\n",
    "\n",
    "    def summa(self):\n",
    "        return self.tovar.tsena * self.kolichestvo\n",
    "\n",
    "ruchka = Tovar(\"Ручка\", 100)\n",
    "zakaz = Zakaz(ruchka, 3)\n",
    "print(zakaz.summa())"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Cartesian Python 3.14",
   "language": "python",
   "name": "cartesian-python314"
  },
  "language_info": {
   "name": "python",
   "version": "3.14.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
