Třídy jsou základním stavebním kamenem objektově orientovaného programování (OOP) v Pythonu. V této sekci si vyzkoušíte definování tříd, vytváření instancí, práci s konstruktorem, atributy a metodami. Níže najdete tři úkoly, které vám pomohou lépe pochopit tyto koncepty.
Vytvořte třídu Pes, která bude mít atributy jmeno (řetězec) a vek (celé číslo). Přidejte metodu stekej, která vypíše zprávu ve formátu "[jmeno], [vek] let starý, říká: Haf haf!". Použijte konstruktor __init__ pro nastavení atributů při vytvoření instance.
class Pes:
def __init__(self, jmeno, vek):
self.jmeno = jmeno
self.vek = vek
def stekej(self):
print(f"{self.jmeno}, {self.vek} let starý, říká: Haf haf!")
# Test
muj_pes = Pes("Azor", 5)
muj_pes.stekej() # Výstup: Azor, 5 let starý, říká: Haf haf!
Vytvořte třídu Skola s třídní proměnnou nazev nastavenou na "Základní škola". Každá instance bude mít instanční proměnnou jmeno_studenta. Přidejte metodu info, která vypíše "[jmeno_studenta] studuje na [nazev]". Vytvořte dvě instance a otestujte změnu třídní proměnné.
class Skola:
nazev = "Základní škola"
def __init__(self, jmeno_studenta):
self.jmeno_studenta = jmeno_studenta
def info(self):
print(f"{self.jmeno_studenta} studuje na {self.nazev}")
# Test
student1 = Skola("Jan Novák")
student2 = Skola("Eva Svobodová")
student1.info() # Výstup: Jan Novák studuje na Základní škola
student2.info() # Výstup: Eva Svobodová studuje na Základní škola
# Změna třídní proměnné
Skola.nazev = "Gymnázium"
student1.info() # Výstup: Jan Novák studuje na Gymnázium
student2.info() # Výstup: Eva Svobodová studuje na Gymnázium
Vytvořte třídu Kruh s třídní proměnnou pi nastavenou na 3.14159. Přidejte třídní metodu vypocitej_obvod (použijte dekorátor @classmethod), která přijme parametr polomer a vrátí obvod kruhu (2 * pi * polomer). Otestujte metodu bez vytvoření instance.
class Kruh:
pi = 3.14159
@classmethod
def vypocitej_obvod(cls, polomer):
return 2 * cls.pi * polomer
# Test
obvod = Kruh.vypocitej_obvod(5)
print(f"Obvod kruhu s poloměrem 5 je: {obvod}") # Výstup: Obvod kruhu s poloměrem 5 je: 31.4159