https://naucse.python.cz/2022/praha-pyladies-podzim/sessions/inheritance/
Last active
December 12, 2022 17:02
-
-
Save brabemi/259ce7e032e3ca6c89d5fab9d41bdedb to your computer and use it in GitHub Desktop.
Lekce: Třídy II & Dědičnost (2022-12-07)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class Kotatko: | |
def __init__(self, jmeno, pocet_nohou=4, jidlo=''): | |
self.jmeno = jmeno | |
self.pocet_nohou = pocet_nohou | |
if jidlo != '': | |
self.vybirave = True | |
self.oblibene_jidlo = jidlo | |
else: | |
self.vybirave = False | |
def __repr__(self): | |
return 'ahoj' | |
def _moje_metoda(self): | |
pass | |
def snez(self, jidlo): | |
if self.vybirave: | |
if jidlo == self.oblibene_jidlo: | |
print("{}: {} mi chutná!".format(self.jmeno, jidlo)) | |
else: | |
print("{}: {} mi nechutná!".format(self.jmeno, jidlo)) | |
else: | |
print("{}: {} mi chutná!".format(self.jmeno, jidlo)) | |
def zamnoukej(self): | |
print("{}: Mňau!".format(self.jmeno)) | |
# pokud by třída neměla __init__ tak bych musel volat funkci, která by mi správně vyrobila nový objekt | |
# to je nešikovné, tak je lepší dát podobný kód rovnou do initu | |
# def vyrob_kotatko(jmeno): | |
# mourek = Kotatko() | |
# print(mourek) | |
# mourek.pojmenuj('Mourek') | |
# # mourek.jmeno = 'Mourek' | |
# return mourek | |
# mourek = vyrob_kotatko('Mourek') | |
mourek = Kotatko('Mourek', jidlo='ryba') | |
print(mourek) | |
# mourek.snez('granule') | |
# mourek.zamnoukej() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class Zviratko: | |
def __init__(self, jmeno, pocet_nohou=4, hladove=False): | |
self.jmeno = jmeno.capitalize() | |
self.pocet_nohou = pocet_nohou | |
self.zavazane_tkanicky = True | |
self.hladove = hladove | |
def snez(self, jidlo): | |
print("{}: {} mi chutná!".format(self.jmeno, jidlo)) | |
def udelej_zvuk(self): | |
print("{}: {}!".format(self.jmeno, self.zvuk)) | |
class Jehnatko(Zviratko): | |
# class proměnná - je společná pro celou třídu | |
zvuk = 'Bééé' | |
# class Kotatko(Zviratko): | |
# def __init__(self, jmeno, pocet_nohou=4, hladove=False): | |
# super().__init__(jmeno, pocet_nohou, hladove) | |
# self.zvuk = 'Mňau' | |
# def zamnoukej(self): | |
# print("{}: Mňau!".format(self.jmeno)) | |
class Kotatko(Zviratko): | |
def udelej_zvuk(self): | |
print("{}: Mňau!".format(self.jmeno)) | |
class Stenatko(Zviratko): | |
# def zastekej(self): | |
def udelej_zvuk(self): | |
print("{}: Haf!".format(self.jmeno)) | |
class Kuzlatko(Zviratko): | |
# def zamec(self): | |
def udelej_zvuk(self): | |
print(f'{self.jmeno}: Méééé!') | |
# https://pastebin.com/CS3h8cLJ | |
# vytvořte novou třídu Telatko | |
# Telatko dedí z Zviratko | |
# Telatko má metodu zabuc() | |
class Telatko(Zviratko): | |
# def zabuc(self): | |
def udelej_zvuk(self): | |
print(f'{self.jmeno}: Bůůůů!') | |
class Papousce(Zviratko): | |
# def __init__(self, jmeno, pocet_nohou=2): | |
# self.jmeno = jmeno.capitalize() | |
# self.pocet_nohou = pocet_nohou | |
def __init__(self, jmeno, pocet_nohou=2, hladove=False): | |
super().__init__(jmeno, pocet_nohou) | |
self.zavazane_tkanicky = False | |
# def rekni_neco(self): | |
def udelej_zvuk(self): | |
print(f'{self.jmeno}: Muž přes palubu!') | |
# vyrob třídu Hadatko | |
# hadatko má 0 nohou | |
# had udela z s ve jmenu sss | |
# had Severus -> Ssseverusss | |
# had má metodu zasyc | |
class Hadatko(Zviratko): | |
def __init__(self, jmeno, pocet_nohou=0, hladove=False): | |
jmeno = jmeno.lower().replace('s', 'sss') | |
super().__init__(jmeno, pocet_nohou, hladove) | |
self.zvuk = 'sss' | |
# self.jmeno = self.jmeno.replace('s', 'sss') | |
# self.jmeno = self.jmeno.replace('S', 'Sss') | |
# def zasyc(self): | |
def udelej_zvuk(self): | |
print(f'{self.jmeno}: Sssss!') | |
mourek = Kotatko('Mourek', hladove=True) | |
alik = Stenatko('Alík') | |
liza = Kuzlatko('Líza', hladove=True) | |
milka = Telatko('Milka') | |
pepik = Papousce('pepík', hladove=True) | |
severus = Hadatko('Severus') | |
oskar = Jehnatko('Oskar') | |
zoo = [ | |
mourek, | |
alik, | |
liza, | |
milka, | |
pepik, | |
severus, | |
oskar | |
] | |
for zvire in zoo: | |
zvire.udelej_zvuk() | |
zvire.snez('granule') | |
print(zvire.jmeno, zvire.pocet_nohou, zvire.zavazane_tkanicky, zvire.hladove) | |
# ošklivá varianta jak dělat zvuk zvířete | |
# if isinstance(zvire, Kotatko): | |
# zvire.zamnoukej() | |
# elif isinstance(zvire, Stenatko): | |
# zvire.zastekej() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment