Mikuláš je tu! Získaj 90 % extra kreditov ZADARMO s promo kódom CERTIK90 pri nákupe od 1 199 kreditov. Len do nedele 7. 12. 2025! Zisti viac:
NOVINKA: Najžiadanejšie rekvalifikačné kurzy teraz s 50% zľavou + kurz AI ZADARMO. Nečakaj, táto ponuka dlho nevydrží! Zisti viac:

Diskusia – 4. diel - Hracia kocka v Pythone - Zapuzdrenie a konštruktor

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Posledné komentáre sú na spodnej časti poslednej stránky.
Avatar
mixxy
Člen
Avatar
Odpovedá 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.

Odpovedať
Neni dulezite mnoho vedet a znat. Dulezite je vedet, co je treba.
Avatar
Odpovedá 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'

Avatar
Odpovedá 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

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

Odpovedať
Existuje lepší moznost, najdi ji!
Avatar
hanpari
Člen
Avatar
Odpovedá 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.

Avatar
Josef Rajmon
Člen
Avatar
Odpovedá 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()
Odpovedať
Existuje lepší moznost, najdi ji!
Avatar
hanpari
Člen
Avatar
Odpovedá 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.

Avatar
Josef Rajmon
Člen
Avatar
Odpovedá na hanpari
Josef Rajmon:24.9.2019 10:50

Aha dekuji moc

Odpovedať
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ě.

Editované
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.

Posledné komentáre sú na spodnej časti poslednej stránky.
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zobrazené 10 správy z 95.