NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze – Lekce 4 - Hrací kostka v Pythonu - Zapouzdření a konstruktor

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
Avatar
mixxy
Člen
Avatar
Odpovídá na Jan Koloničný
mixxy:8.8.2019 23:01

Ahoj,
jakou mas verzi Pythonu? Ja jsem to zkousel na telefonu a bez problemu. Muzes si zkusit nadefinovat ve tride tu promennou __pocet_sten.

Odpovědět
8.8.2019 23:01
Neni dulezite mnoho vedet a znat. Dulezite je vedet, co je treba.
Avatar
Odpovídá na mixxy
Jan Koloničný:10.8.2019 17:07

Mám Python 3.7.2. Myslíš, že v tom může být problém?

class Kostka:
    """
    Třída reprezentuje hrací kostku.
    """

    def __init__(self, pocet_sten):
        self.__pocet_sten = pocet_sten

    def vrat_pocet_sten(self):
        return self.__pocet_sten


kostka = Kostka(10)
print(kostka.vrat_pocet_sten())
input()

A píše mi to: AttributeError: 'Kostka' object has no attribute '_Kostka__pocet_sten'

 
Odpovědět
10.8.2019 17:07
Avatar
Odpovídá na Jan Koloničný
Jan Koloničný:10.8.2019 17:39

Chyba byla u mě :D spouštěl jsem úplně něco jiného, než jsem psal :D

 
Odpovědět
10.8.2019 17:39
Avatar
Josef Rajmon
Člen
Avatar
Josef Rajmon:22.9.2019 20:44

ahoj mam problem kdyz se dostanu k definovaní vrat_pocet_sten tak mi to zatim hodí
syntax error expected of indented block a absolutne nevim co s tím muze mi nekdo poradit?

class Kostka:
"""
Třída reprezentuje hrací kostku.
"""

def __init__(self):
self.__pocet_sten = 6

def vrat_pocet_sten(sel­f):
"""
Vrátí počet stěn kostky.
"""
return self.__pocet_sten

kostka = Kostka()
print(kostka.vrat_po­cet_sten())
input()

Odpovědět
22.9.2019 20:44
Existuje lepší moznost, najdi ji!
Avatar
hanpari
Člen
Avatar
Odpovídá na Josef Rajmon
hanpari:23.9.2019 17:14

Neocekavane odsazeni.
Python od tebe ceka, ze budes odsazovat kod, protoze jeho bloky se neoddeluji zavorkami, ale bilymi znaky na zacatku radky, mezery nebo tabulatory.
Pokud tvuj kod vypada tak, jak jsi ho poslal, tak si s nim interpreter neporadi.
Zkus vlozit svuj kod jako kod. Druhe tlacitko zleva.

 
Odpovědět
23.9.2019 17:14
Avatar
Josef Rajmon
Člen
Avatar
Odpovídá na hanpari
Josef Rajmon:23.9.2019 17:47

je to ten samí kod co nahoře jen mi to vzdy vyhodí tabulku s tou chybou a označí tohle a radek nad tím: kostka = Kostka()

class Kostka:
    """
    Třída reprezentuje hrací kostku.
    """

    def __init__(self):
        self.__pocet_sten = 6

    def vrat_pocet_sten(self):
    """
    Vrátí počet stěn kostky.
    """
    return self.__pocet_sten


kostka = Kostka()
print(kostka.vrat_pocet_sten())
input()
Odpovědět
23.9.2019 17:47
Existuje lepší moznost, najdi ji!
Avatar
hanpari
Člen
Avatar
Odpovídá na Josef Rajmon
hanpari:24.9.2019 8:01
class Kostka:
    """
    Třída reprezentuje hrací kostku.
    """

    def __init__(self):
        self.__pocet_sten = 6

    def vrat_pocet_sten(self):
        """CHYBA V ODSAZENI
        Vrátí počet stěn kostky.
        """
        return self.__pocet_sten


kostka = Kostka()
print(kostka.vrat_pocet_sten())
input()

Chyba je v celém odsazení metody vrat_pocet_sten

A ano, v článku je chyba.

 
Odpovědět
24.9.2019 8:01
Avatar
Josef Rajmon
Člen
Avatar
Odpovídá na hanpari
Josef Rajmon:24.9.2019 10:50

Aha dekuji moc

Odpovědět
24.9.2019 10:50
Existuje lepší moznost, najdi ji!
Avatar
skamos
Člen
Avatar
skamos:19.10.2019 15:48

Ahoj. Proč se píše

return str("Kostka s {0} stěnami".format(self.__pocet_sten))

když

return "Kostka s {0} stěnami".format(self.__pocet_sten)

vrátí stejný výsledek? Proč je použita metoda str , chápu, že to pak vrátí string, ale to snad i bez té metody, alespoň v tomhle případě.

Editováno 19.10.2019 15:50
 
Odpovědět
19.10.2019 15:48
Avatar
Marty
Člen
Avatar
Marty:16.3.2020 5:25

Modul si naimportujeme vnitřně (použijeme jedno podtržítko).
Při importování modulů se Python podívá, jestli byl již modul importován, takže pokud modul importoval dříve, tak ho Python znovu neimportuje.

Stále nechápu, proč tam je to začáteční podtržítko. Nejde to bez vytváření aliasu _random?

Díky.

 
Odpovědět
16.3.2020 5:25
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 10 zpráv z 90.