#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)