Ano, ted to je již jasnější. Pohybujeme se ve velmi obecné rovině a tak
názory mohou být velmi subjektivní. Já osobně v těchto případech to
dělám podle toho jak mám čas a chuť. Pokud ani jedno z toho nemám, řeším
přesně zadání, které mám, a nezdržují se tím, co by mohlo být, kdyby se
něco stalo. Pokud mám obě, piplám věci k dokonalosti, k připravenosti na
budoucí požadavky. Nicméně pokud ted vytvoříte program podle současného
zadání není žádný problém v budoucnu program rozšířit, či ano? Všechny
vnitřní proměnné funkcí můžete kdykoliv předělat na funkce, až to bude
třeba. Nebo to můžete již také připravit i ted s tím, že funkce v
současném stavu bude vracet jen jednu hodnotu.
Nyní mě napadlo, že byste mohl s výhodou snad využít, pokud byste zvolil
objektové řešení, get/set. Dostanete tak funkce, které se tváří jako
proměnné. Obecně se jedná o nastavování proměnných na určité hodnoty
přes funkci a také získávání jejich hodnot přes funkce, přesto, že
vypadají jako proměnné. Více na http://www.py.cz/GetSetProperty a google.
Mnoho zdaru
P.
[email protected] napsal(a), dne 10.2.2009 23:18:
Díky za odpověď. Asi jsem to ve snaze o zobecnění napsal málo srozumitelně. Jde
mi o to, že počítám hodnotu průtoku a používám k tomu dílčí výpočty
hydraulického poloměru, průtočné plochy, omočeného obvodu apod. Já samozřejmě
můžu napsat funkci, která mi ten průtok na pár řádcích spočítá. Jde jen o to,
že v budoucnosti možná budu potřebovat znát i výsledek toho mezikroku, tzn.
například průtočnou plochu. Pokud tedy tu funkci na výpočet průtoku rozložím na
dílčí operace a udělám z nich funkce, můžu v budoucnu zavoláním jedné funkce
zjistit tu hodnotu průtočné plochy, což asi nejde, je-li to pouze vnitřní
proměnná nějaké funkce a ne její návratová hodnota. No, a ten průtok můžu
spočítat pomocí těch již nadefinovaných dílčích funkcí.
Tolik tedy na vysvětlenou. Doufám, že to je trošku srozumitelnější. K půlnoci
už mi to tolik nemyslí.
VD
------------ Původní zpráva ------------
Od: Pavel Kosina <[email protected]>
Předmět: Re: [python] Struktura modulu - dotaz začátečníka
Datum: 10.2.2009 22:37:03
----------------------------------------
[email protected] napsal(a), dne 10.2.2009 22:16:
Měl bych dotaz ohledně strukturování kódu modulu. řeším teď nějaký hydraulický
problém, kde se počítá průtok v potrubí. Ten je výsledkem postupného určení
určitých charakteristik. Na jejich znalost by ovšem v budoucnu mohl být
požadavek.
Moje dilema je tedy takovéto:
1, můžu pro každý postupný krok nadefinovat funkci a v následných krocích
(funkcích) výpočtu tyto funkce volat
2, můžu definovat každou funkci zvlášť, tzn. bude obsahovat kód potřebný pro
stanovení dané charakteristiky
3, můžu (asi) nadefinovat funkci, která bude počítat všechny potřebné
charakteristika a vracet je jako seznam
Mohu-li soudit z nejasného zadání i vět (např. "Na jejich znalost by
ovšem v budoucnu mohl být požadavek. "), řekl bych že 2/ je správně. Asi
nejlépe se udržují, což bude pro vás snad důležitější než rychlost,
dobře uspořádané funkce. Ještě lepší jsou chytře vymyšlené třídy a
metody. At se již rozhodnete jakkoliv pamatujte, že nejkratší kod nebývá
nejlepší. Nejlepší kod bývá ten, který je čitelný a opravitelný i po
roce. Použijte Python pro sestavení základního přehledného programu, a
pokud bude v budoucnu nutno, můžete si pohrát s rychlostí třebas tak, že
kritické části napíšete v C, pokud na to budete mít čas a schopnosti.
--
geon
Pavel Kosina
_______________________________________________
Python mailing list
[email protected]
http://www.py.cz/mailman/listinfo/python