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)