From 39e4adb70dd266aee6d667117ff337e4122ad056 Mon Sep 17 00:00:00 2001 From: KubMakCZ Date: Thu, 30 Apr 2026 11:32:24 +0200 Subject: [PATCH] tridy kucharka --- 33_oop_kucharka/kucharka.py | 53 +++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 33_oop_kucharka/kucharka.py diff --git a/33_oop_kucharka/kucharka.py b/33_oop_kucharka/kucharka.py new file mode 100644 index 0000000..bb058e2 --- /dev/null +++ b/33_oop_kucharka/kucharka.py @@ -0,0 +1,53 @@ +#Anatomie třídy + +#klíčové slovo "class" začína definici podobně jako def +#jméno třídy začína s Velkým písmenem +class Robot: + #KONSTRUKTOR + #volá se automaticky když tvoříme nový objekt + #napřiklad -> r = Robot("Karel") + def __init__(self, jmeno, barva): + #self s ukazovadlem na SEBE SAMA + #bez self by python nevěděl na kterého robota "ukázat" + self.jmeno = jmeno + self.barva = barva #Atribut (vlastnost) z parametru + self.energie = 100 #Atribut s výchozí hodnotou + print(f"Robot {self.jmeno} byl právě vyroben!") + + #Metody (schopnost/sloveso) + #první parametr musí být vždy SELF + def pozdrav(self): + print(f"Píp Píp. Já jsem {self.jmeno}.") + print(f"Moje barva je {self.barva}. ☺") + print(f"Nyní mám {self.energie}% energie.\n") + + def pracuj(self,hodiny): + spotreba = hodiny * 10 + if self.energie >= spotreba: + self.energie -= spotreba + print(f"Robot {self.jmeno} pracoval {hodiny}h") + print(f"Energie: {self.energie}%\n") + else: + print(f"Robot {self.jmeno}: Nedostatek energie! potřebuji dobít") + + def odpocivej(self,hodiny): + nabiti = hodiny * 40 + self.energie += nabiti + if self.energie>=100: self.energie = 100 + print(f"Robot {self.jmeno} si odpočinul na {hodiny}h") + print(f"Nyní je nabitý na {self.energie}%\n") + # JAK TO POUŽÍT V PROGRAMU? + +# 1. vytvořit instanci objektu (třída je jako šablona pro objekty) +karel = Robot("Karel","stříbrná") +emil = Robot("Emil","modrá") + +# 2. volání metod +karel.pozdrav() +emil.pozdrav() + +karel.pracuj(3) +emil.pracuj(5) +emil.odpocivej(1) +emil.pracuj(6) +emil.odpocivej(2) \ No newline at end of file