[python] Struktura modulu - dotaz začátečníka
Pavel Kosina
geon na post.cz
Středa Únor 11 07:39:50 CET 2009
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.
pedro-py na email.cz 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 <geon na post.cz>
>> Předmět: Re: [python] Struktura modulu - dotaz začátečníka
>> Datum: 10.2.2009 22:37:03
>> ----------------------------------------
>> pedro-py na email.cz 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
>>
Další informace o konferenci Python