[python] otázka ohladom mojho štýlu písania v OOP

Roman Beno romanbeno273 na gmail.com
Pondělí Leden 14 19:18:35 CET 2013


Na to už som natrafil.
Čo sa týka Raiczeho kritiky, podobný systém s "odkazom na metódy jednej
konkrétnej instancie" je uplatnený v module random.

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ú.

Tak napríklad ten triviálny príklad s triedou PrikazovyRiadok :-)

V časti

if __name__="__main__":
    # čo robit s instaciou(ami) po spustení z termu..
    ....

by mohlo byť:

A)
inst=PrikazovyRiadok()
inst.proces()

alebo
B)
urobit metodu proces  tak aby sa self.proces() robil len raz, napr:
def proces(self):
   self.prikaz=input("Zadajte: "")
   if self.prikaz.startswith("cd"):
        .....
   elif self.prikaz.startswith("pwd"):
        .....
   else:
       os.system(self.prikaz)

a potom už v časti if __name__ ....
inst=PrikazovyRiadok()
while True:
   inst.proces()
   if self.prikaz=="0":
        break

atd atd proste v triede stanovit iba to nevyhnutné a prácu s metodami
instancie nechat do tohto bloku.
Skor sa však priklanam k možnosti A.

Ďakujem za odpoved
Roman





Dňa 14. január 2013 18:14, Hynek Fabian
<hynek.fabian na firma.seznam.cz>napísal(-a):

> Tak s timnhle bych byl opatrny. Vetsina filozofovani o OOP je psana s
> ohledem na C++/Javu a kdyz dojde na prakticke rady nebo dokonce ukazky
> zacnou se objevovat veci jako singletony, gettery/settery, fabricke
> metody a podobne radosti, ktere jsou v pythonu bud zbytecne nebo
> vyslovene skodlive.
> Nic proti filozofovani, naopak, Design Patterns by mela byt povinna
> cetba :-) ale porad plati ze by clovek mel znat dobre jazyk o kterem je
> rec, aby rozeznal co je obecny princip a co jen vlastnost jazyka.
> Pak jsou tu samozrejme takove ty uplne akademicke pojednani ve kterych
> neni ani radka kodu, ale z tech se imo zacatecnik nedozvi nic prakticky
> uzitecneho.
> Spis nez nejake dalekosahle zvaneni, uplne zakladni "ustava" kodu v
> pythonu je pro me modul this.
>
> On 01/13/13 18:48, Róbert Čerňanský wrote:
> > On Sat, 12 Jan 2013 18:46:35 +0100
> > Roman Beno <romanbeno273 na gmail.com> wrote:
> >
> >> V mojej otázke som mal viac na mysli, či je vhodné písat jednu velkú
> >> metódu bez atribútov ako program, prípadne viac metód na
> >> rozkúskovanie a trochu sprehladnenie programu, resp. sa snažit aby
> >> čast kódu pri vytváranií instancie triedy (čiže už za dokončením
> >> definície triedy) bola čo najstručnejšia?
> >
> > Tu vlastne pýtaš, ako najlepšie navrhnúť program.  Aké triedy bude
> > mať, aké metódy budú tieto triedy obsahovať a pod.  Tu sa pri hľadaní
> > návodov nemusíš držať Python-u (a v niektorých prípadoch ani objektovo
> > orientovaného programovania), ale hľadaj skôr informácie o objektovo
> > orientovanom (alebo všeobecnom) návrhu.
> >
> > Napr. na stránke
> > http://c2.com/cgi/wiki?PrinciplesOfObjectOrientedDesign sa nachádzajú
> > základné princípy objektovo orientovaného návrhu.  Hneď prvý (Single
> > Responsibility Principle) Ti dáva odpoveď na to, či je lepšia jedna
> > veľká metóda (či trieda) alebo viac malých.
> >
> > Čo sa týka návrhu a písania programu všeobecne, (ale aj objektového),
> > tak je výborná kniha Dokonalý kód
> > (http://www.martinus.sk/?uItem=24387).  Dáva odpovede na podobné otázky
> > ako sa tu pýtaš.
> >
> > Robo
> >
> >
>
> _______________________________________________
> Python mailing list
> Python na py.cz
> http://www.py.cz/mailman/listinfo/python
>
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://www.py.cz/pipermail/python/attachments/20130114/4d03189f/attachment.html>


Další informace o konferenci Python