NOVINKA: Začni v IT jako webmaster s komplexním akreditovaným online kurzem Tvůrce WWW stránek. Zjisti více:
NOVINKA: Staň se datovým analytikem od 0 Kč a získej jistotu práce, lepší plat a nové kariérní možnosti. Více informací:

Diskuze – Lekce 1 - Úvod do objektově orientovaného programování v Pythonu

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Nejnovější komentáře jsou na konci poslední stránky.
Avatar
Veronika Viková:8. dubna 19:03

Text mi po prvním přečtení vůbec nic neřekl :-( Zkusím to ještě několikrát a třeba pochopím, co se tam píše - pro začátečníka je to neuchopitelný text.

Avatar
DarkCoder
Člen
Avatar
Odpovídá na Veronika Viková
DarkCoder:8. dubna 20:00

Nedivím se, vysvětlení OOP není v článku příliš zřetelné. Je třeba pochopit to, že charakteristika objektu (atributy) a chování objektu (metody) jsou vázané k objektu (instanci), který je vytvářen podle určité šablony (třída).

Když pak objekt něco dělá (chování objektu), pak se volají příslušné metody (funkce uvnitř třídy) objektu, které si berou data jež charakterizují objekt. Tedy z atributů.

Znovu připomínám, atributy a metody se vztahují k objektu, který je vytvořen podle třídy. Nejsou tedy někde samostatně. Tvoří tedy celistvou jednotku, což zjednodušuje práci.

Později na příkladech to pak bude lépe vidět a pochopíš co výše uvedený text znamená.

Odpovědět
"I ta nejlepší poučka postrádá na významu, není-li patřičně předána." - DarkCoder
Avatar
DarkCoder
Člen
Avatar
Odpovídá na Veronika Viková
DarkCoder:8. dubna 20:24

Pro představu jednoduchý příklad:

# šablona - Definice třídy Auto
class Auto:
    # Atributy třídy

    rychlost = 0        # atribut rychlost s nulovým počátečním stavem

    # Metody třídy

    # Metoda, která nastaví rychlost dle přírůstku
    def zrychlit(self, prirustek):
        self.rychlost += prirustek

    # Metoda, která nastaví rychlost na nulu
    def zastavit(self):
        self.rychlost = 0

# Vytvoření instance (objektu) třídy Auto
moje_auto = Auto()

# Použití metody na instanci
moje_auto.zrychlit(50)  # Zrychlí auto o 50
print(moje_auto.rychlost)  # Vytiskne aktuální rychlost auta (50)

# Další použití metody na instanci
moje_auto.zastavit()  # Zastaví auto
print(moje_auto.rychlost)  # Vytiskne aktuální rychlost auta (0)

Z příkladu je patrné, jak charakteristika (atributy) a chování (metody) jsou součástí objektu a jak se s nimi operuje.

Odpovědět
"I ta nejlepší poučka postrádá na významu, není-li patřičně předána." - DarkCoder
Avatar
Milan Pavlíček:20. června 15:05

uz zde se objevuje kód:
"kalkulacka = Kalkulacka()
kalkulacka.sec­ti(83, -2)",
ale tento kód je vysvětlen až v další lekci

Avatar
DarkCoder
Člen
Avatar
DarkCoder:20. června 16:13

Ještě si jen pro ilustraci ukažme opět náš příklad, tentokrát v objektech. Funkce secti() již nikde volně nepoletuje, ale patří objektu Kalkulacka, který je jednou z komponent naší aplikace.

Když už jsme u těch neancí v malém a velkém písmenu, bylo by dobré to uvádět správně. Kalkulačka s velkým K není objekt ale třída, kalkulačka s malým k je objekt (instance třídy Kalkulačka).

Takže buď řeknu - s důrazem na třídu:

„Funkce secti() již nikde volně nepoletuje, ale je metodou třídy Kalkulacka, která je jednou z komponent naší aplikace.“

nebo s důrazem na objekt:

„Funkce secti() již nikde volně nepoletuje, ale je volána jako metoda na objektu kalkulacka, který je instancí třídy Kalkulacka.“

Odpovědět
"I ta nejlepší poučka postrádá na významu, není-li patřičně předána." - DarkCoder
Avatar
Marcel Štunda:18. září 15:07

nedostatočne vysvetlené syntaxy a použité kľúčové slová v lekcii, má to byť vysvetlené tak aby to nemohlo byť zameniteľné a domýšľané si ako to funguje. plus každej lekcii chýba celkové priemerné hodnotenie(re­cenzie) od všetkých ľudí ktorí to hodnotili. veľmi rád by som sa na to pozrel a odvíjal od toho celkové "učivo" v ktorom je strašne veľa omáčok aby to človek mal všetko čítať a nechať tam len konkrétne veci. ak si chcem prečítať časopis tak si prečítam časopis a nie kecy okolo toho.

Avatar
DarkCoder
Člen
Avatar
DarkCoder:27. října 9:43

Můj původní příklad v diskuzi s třídou auto není úplně správný. Jde o to, že třída má třídní atribut rychlost který je sdílen napříč všemi instancemi této třídy. Atribut rychlost by tedy správně měl být instanční, neboť chování každého auta by mělo být nezávislé. V příkladu dochází k vytvoření instančního atributu za běhu a do třídního se nic nepřiřazuje. Toto chování je matoucí a tak přidávám správnou verzi používající již instanční atribut na začátku.

class Auto:
    def __init__(self):
        # Instanční atribut – každý objekt (auto) má svůj vlastní
        self.rychlost = 0

    def zrychlit(self, prirustek):
        # Zvýší rychlost o zadaný přírůstek
        self.rychlost += prirustek

    def zastavit(self):
        # Nastaví rychlost na nulu
        self.rychlost = 0


# --- Vytvoření dvou nezávislých aut ---
auto1 = Auto()
auto2 = Auto()

# --- Práce s prvním autem ---
auto1.zrychlit(50)
print("Auto 1 – rychlost po zrychlení:", auto1.rychlost)  # 50

# --- Práce s druhým autem ---
auto2.zrychlit(80)
print("Auto 2 – rychlost po zrychlení:", auto2.rychlost)  # 80

# --- Zastavení prvního auta ---
auto1.zastavit()
print("Auto 1 – rychlost po zastavení:", auto1.rychlost)  # 0

# --- Ověření, že druhé auto zůstalo beze změny ---
print("Auto 2 – rychlost stále:", auto2.rychlost)  # 80
Odpovědět
"I ta nejlepší poučka postrádá na významu, není-li patřičně předána." - DarkCoder
Avatar
Peter Šupka
Člen
Avatar
Peter Šupka:1. listopadu 10:57

Pripada mi, ze tento uvod da cloveku velmi malo pridanej hodnoty.. rozumiem, ze je to pre zaciatok, ale o OOP tam toho je naozaj velmi malo.

Odpovědět
Všetko sa dá naučiť...
Nejnovější komentáře jsou na konci poslední stránky.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 8 zpráv z 28.