You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

53 lines
1.7 KiB

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