From 7c0f04741edc1d8a290e7471d0200996e22e1053 Mon Sep 17 00:00:00 2001 From: KubMakCZ Date: Wed, 6 May 2026 11:20:54 +0200 Subject: [PATCH] wip --- 34_oop_next/zapouzdreni.py | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 34_oop_next/zapouzdreni.py diff --git a/34_oop_next/zapouzdreni.py b/34_oop_next/zapouzdreni.py new file mode 100644 index 0000000..9b26fc3 --- /dev/null +++ b/34_oop_next/zapouzdreni.py @@ -0,0 +1,36 @@ +#zapouzdření aneb jak chránit data a jak učit objekty "mluvit" + +class Postava: + def __init__(self,jmeno,hp): + self.jmeno = jmeno + #Zapozdření + #podržítko na začátku je dohoda programátorů + # "Tato hodnoda je soukromá, neměn ji přímo zvenčí!" + self._hp = hp + self.max_hp = hp + + #Magická metoda __str__ + # Python ji volá automaticky když napíšeme print(objekt) + def __str__(self): + return f"Postava {self.jmeno} | Hp: {self._hp}/{self.max_hp}" + + def utrp_zraneni(self,sila): + self._hp -= sila + if self._hp < 0 : + self._hp = 0 + print(f"{self.jmeno} zranen o {sila} bodů") + + def vylecit(self,body): + self._hp += body + if self._hp > self.max_hp: + self._hp = self.max_hp + print(f"{self.jmeno} se vyléčil") + +hrdina = Postava("Aragorn", 100) +print(hrdina) + +hrdina.utrp_zraneni(30) +print(hrdina) + +hrdina.vylecit(20000000) +print(hrdina)