[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