Commit e0371afb authored by cermak's avatar cermak
Browse files

lesson 10

parent 8f9d9ccb
Pipeline #22269 passed with stage
in 1 minute and 39 seconds
\documentclass{beamer}
\title{Programování 1: Třídy a objekty}
\title{Programování 1.10: Třídy a objekty}
\input ../slidemac.tex
......@@ -119,8 +119,6 @@ False
\pycode{trida_str.py}
\medskip
\py{%
hroch = Zvire("Hippo", "Humpf!")\\
hroch
......@@ -142,8 +140,6 @@ Hippo
\pycode{trida_op.py}
\medskip
\py{%
hroch1 = Zvire("Hippo", "Humpf!")\\
hroch2 = Zvire("Hippo", "Humpf!")\\
......@@ -166,22 +162,39 @@ Podobně jde předefinovat všechny operátory.
% ----------------------------------------------------------------------
\begin{frame}{Další protokoly}
\begin{markdown}
%%begin novalidate
### Další protokoly
Další protokoly, které může třída implementovat:
\medskip
- Konverze na bool, str, int, float
`__bool__`, `__str__`, `__int__`, `__float__`
- Indexování: čtení/zápis/mazání,obj[...], len(obj)
`__contains__`, `__setitem__`, `__getitem_`
- Přístup k~atributům: čtení/zápis/mazání obj.klíč
`__getattr__`, `__setattr__`
- Volání jako funkce
`__call__`
- Iterátor pro for x in objekt
`__iter__`, `__next__`
\begin{itemize}
\item Konverze na bool, str, int, float
\item Indexování: čtení/zápis/mazání {\it obj\/}{\bf [...]}, {\bf len(}{\it obj\/}{\bf )}
\item Přístup k~atributům: čtení/zápis/mazání {\it obj\/}{\bf .klíč}
\item Volání jako funkce
\item Iterátor pro {\bf for} {\it x\/} {\bf in} {\it objekt\/}
\end{itemize}
\end{frame}
%%novalidate
\end{markdown}
% ----------------------------------------------------------------------
\begin{frame}{Dokumentační komentáře}
......@@ -341,4 +354,17 @@ Volání {\tt int()} nebo {\tt int("1")} je prostě vytvoření objektu dané t
% ----------------------------------------------------------------------
\begin{frame}{Úkoly na hodinu}
\begin{itemize}
\item Naučte každé zvíře slyšet navíc na jméno potvůrka.
\item Doplňte atribut pozice a zařiďte, aby zvíře slyšelo na jméno jenom tehdy, když pozice je doma.
\item Vytvořte odvozenou třídu Pes, jehož metoda ozvi\_se na každé druhé zavolání zaštěká a jinak zavrčí.
\end{itemize}
\end{frame}
\end{document}
......@@ -2,7 +2,6 @@ class Zvire:
def __init__(self, jmeno, zvuk):
self.jmeno = jmeno
self.zvuk = zvuk
def __eq__(self, other):
return self.jmeno == other.jmeno and \
self.zvuk == other.zvuk
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment