class Vagon: def __init__(self, co="nic", kolik=0, dalsi=None): self.co = co self.kolik = kolik self.dalsi = dalsi class Masina(Vagon): def __init__(self, dalsi=None): self.dalsi = dalsi self.co = "nic" self.kolik = 0 def vypis_vlak(self): vuz = self print("Mašina") while vuz.dalsi != None: vuz = vuz.dalsi print(vuz, vuz.kolik, vuz.co) def pripoj_na_zavatek(self, vuz): """ puvodni_vuz_za_masinou = masina.dalsi masina.dalsi = None masina.dalsi = vuz vuz.dalsi = puvodni_vuz_za_masinou """ vuz.dalsi = masina.dalsi masina.dalsi = vuz def pripoj_na_zavatek_dle_param(self, co, kolik): masina.dalsi = Vagon(co, kolik, masina.dalsi) def vypoj(self, co): """ vuz = self predchozi = None while vuz.co != "uhlí": predchozi = vuz vuz = vuz.dalsi # teď vuz veze uhlí predchozi.dalsi = vuz.dalsi """ vuz = self while vuz.dalsi.co != "uhlí": vuz = vuz.dalsi # teď vuz.dalsi veze uhlí vuz.dalsi = vuz.dalsi.dalsi def odpoj_cely_vlak(self): self.dalsi = None def vypoj_posledni(self): vuz = self if self.dalsi and self.dalsi.dalsi and self.dalsi.dalsi.dalsi: while vuz.dalsi.dalsi.dalsi.dalsi != None: vuz = vuz.dalsi vuz.dalsi = None masina = Masina() masina.dalsi = Vagon("lidi", 20) masina.dalsi.dalsi = Vagon("uhlí", 30) masina.dalsi.dalsi.dalsi = Vagon("klády", 100) masina.dalsi.dalsi.dalsi.dalsi = Vagon("ptakopyskové", 5) masina.dalsi.dalsi.dalsi.dalsi.dalsi = Vagon("bubliny", 3) masina.vypis_vlak() masina.pripoj_na_zavatek( Vagon("lvi", 3) ) masina.vypoj("uhlí") masina.vypis_vlak() masina.vypoj_posledni() masina.vypis_vlak() masina.vypoj_posledni()