<div dir="ltr"><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div>Na to už som natrafil.<br>Čo sa týka Raiczeho kritiky, podobný systém s "odkazom na metódy jednej konkrétnej instancie" je uplatnený v module random.<br>
<br></div>Ešte by som mal jednu otázku, je to skôr vec názoru.. Nakoľko vyššie spomínané príklady sa toho nejak veľmi netýkajú. <br></div><br></div>Tak napríklad ten triviálny príklad s triedou PrikazovyRiadok :-)<br></div>
<br></div>V časti<br><br></div>if __name__="__main__":<br></div>    # čo robit s instaciou(ami) po spustení z termu..<br>    ....<br><br></div>by mohlo byť:<br><br></div>A) <br></div>inst=PrikazovyRiadok()<br></div>
inst.proces()<br><br></div>alebo <br></div>B)<br></div>urobit metodu proces  tak aby sa self.proces() robil len raz, napr:<br></div>def proces(self):<br></div>   self.prikaz=input("Zadajte: "")<br></div>   if self.prikaz.startswith("cd"):<br>
        .....<br></div>   elif self.prikaz.startswith("pwd"):<br>        .....<br></div>   else:<br></div>       os.system(self.prikaz)<br><br></div>a potom už v časti if __name__ ....<br></div><div>inst=PrikazovyRiadok()<br>
</div>while True:<br></div>   inst.proces()<br></div>   if self.prikaz=="0":<br></div>        break<br></div><br></div>atd atd proste v triede stanovit iba to nevyhnutné a prácu s metodami instancie nechat do tohto bloku.<br>
</div>Skor sa však priklanam k možnosti A.<br><br>Ďakujem za odpoved<br></div>Roman<br><div><div><div><div><div><div><div><div>   <br><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div>
<div><div><div><div><div><br><br></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div>
<div class="gmail_extra"><br><br><div class="gmail_quote">Dňa 14. január 2013 18:14, Hynek Fabian <span dir="ltr"><<a href="mailto:hynek.fabian@firma.seznam.cz" target="_blank">hynek.fabian@firma.seznam.cz</a>></span> napísal(-a):<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Tak s timnhle bych byl opatrny. Vetsina filozofovani o OOP je psana s<br>
ohledem na C++/Javu a kdyz dojde na prakticke rady nebo dokonce ukazky<br>
zacnou se objevovat veci jako singletony, gettery/settery, fabricke<br>
metody a podobne radosti, ktere jsou v pythonu bud zbytecne nebo<br>
vyslovene skodlive.<br>
Nic proti filozofovani, naopak, Design Patterns by mela byt povinna<br>
cetba :-) ale porad plati ze by clovek mel znat dobre jazyk o kterem je<br>
rec, aby rozeznal co je obecny princip a co jen vlastnost jazyka.<br>
Pak jsou tu samozrejme takove ty uplne akademicke pojednani ve kterych<br>
neni ani radka kodu, ale z tech se imo zacatecnik nedozvi nic prakticky<br>
uzitecneho.<br>
Spis nez nejake dalekosahle zvaneni, uplne zakladni "ustava" kodu v<br>
pythonu je pro me modul this.<br>
<div class="im HOEnZb"><br>
On 01/13/13 18:48, Róbert Čerňanský wrote:<br>
> On Sat, 12 Jan 2013 18:46:35 +0100<br>
> Roman Beno <<a href="mailto:romanbeno273@gmail.com">romanbeno273@gmail.com</a>> wrote:<br>
><br>
>> V mojej otázke som mal viac na mysli, či je vhodné písat jednu velkú<br>
>> metódu bez atribútov ako program, prípadne viac metód na<br>
>> rozkúskovanie a trochu sprehladnenie programu, resp. sa snažit aby<br>
>> čast kódu pri vytváranií instancie triedy (čiže už za dokončením<br>
>> definície triedy) bola čo najstručnejšia?<br>
><br>
> Tu vlastne pýtaš, ako najlepšie navrhnúť program.  Aké triedy bude<br>
> mať, aké metódy budú tieto triedy obsahovať a pod.  Tu sa pri hľadaní<br>
> návodov nemusíš držať Python-u (a v niektorých prípadoch ani objektovo<br>
> orientovaného programovania), ale hľadaj skôr informácie o objektovo<br>
> orientovanom (alebo všeobecnom) návrhu.<br>
><br>
> Napr. na stránke<br>
> <a href="http://c2.com/cgi/wiki?PrinciplesOfObjectOrientedDesign" target="_blank">http://c2.com/cgi/wiki?PrinciplesOfObjectOrientedDesign</a> sa nachádzajú<br>
> základné princípy objektovo orientovaného návrhu.  Hneď prvý (Single<br>
> Responsibility Principle) Ti dáva odpoveď na to, či je lepšia jedna<br>
> veľká metóda (či trieda) alebo viac malých.<br>
><br>
> Čo sa týka návrhu a písania programu všeobecne, (ale aj objektového),<br>
> tak je výborná kniha Dokonalý kód<br>
> (<a href="http://www.martinus.sk/?uItem=24387" target="_blank">http://www.martinus.sk/?uItem=24387</a>).  Dáva odpovede na podobné otázky<br>
> ako sa tu pýtaš.<br>
><br>
> Robo<br>
><br>
><br>
<br>
</div><div class="HOEnZb"><div class="h5">_______________________________________________<br>
Python mailing list<br>
<a href="mailto:Python@py.cz">Python@py.cz</a><br>
<a href="http://www.py.cz/mailman/listinfo/python" target="_blank">http://www.py.cz/mailman/listinfo/python</a><br>
</div></div></blockquote></div><br></div>