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