Jak rozdělit metody tříd do souborů v Pythonu 3
Ahoj, chodí sem nějaký opravdový profík na Python který by dokázal poradit jak tuhle třídu rozdělit do více souborů (každá metoda v samostatném souboru) tak aby se zachovala přesně taková datová struktura (v každém z tech souborů) včetně volání těch metod?
class class_a:
def metoda_a():
print('class_a.metoda_a()')
class_a.class_b.metoda_b()
class_a.class_b.class_c.metoda_c()
def metoda_e():
print('class_a.metoda_e()')
class class_b:
def metoda_b():
print('class_a.class_b.metoda_b()')
class class_c:
def metoda_c():
print('class_a.class_b.class_c.metoda_c()')
class_a.class_b.class_c.class_d.metoda_d()
class class_d:
def metoda_d():
print('class_a.class_b.class_c.class_d.metoda_d()')
class_a.metoda_e()
class_a.metoda_a()
K čemu by to mělo být dobré?
K lepší orientaci několika stovek metod.
OK, upřesním svou otázku. Rozdělení projektu do většího počtu souborů je určitě dobrá věc. Ale to rozdělení obvykle vyžaduje i změny ve struktuře programu. Takže moje otázka zní: "K čemu je dobré mít to přesně v takovéhle struktuře?".
Neupřednosťnuješ strukturu před výsledkem?
Ano, upřednostňuji strukturu před výsledkem, struktura je pro mě v tomto případně zásadní. V takové struktuře něco opravím 100x rychleji a případné chyby najdu okamžitě.
Ihmo: nelpím ani na těch třídách, klidně to můžou být všechno jen funkce ale to volání metod a to, že každá metoda/funkce bude v samostatném souboru je prioritní.
V tom případě mi nezbývá nic jiného, než ti popřát hodně štěstí.
Nerozumím, to je sarkasmus? Nebo to nejde?
Vždycky bys ses měl při programování zamýšlet nad tím, co program bude dělat, jak lehké bude do něho později dělat úpravy, jak lehce na to půjdou psát testy, jak tomu asi budeš rozumět, až si k tomu sedneš za půl roku atd. A tomu se pak přizpůsobí struktura programu. Ty ses z nějakého důvodu rozhodl postupovat opačným směrem. Nejdříve sis určil strukturu a pak se na to snažíš naroubovat zbytek.
Aha, a to je ten důvod, proč mi neporadiš?
Ano. Nebudu ti radit něco, o čem si osobně myslím, že je to zcela špatný přístup.
Ok, sice si myslím, že ten důvod je úplně jiný ale to je jedno.