[python] Využití dědičnosti, čistota použití ...

Jan Jakubuv jakubuv na gmail.com
Neděle Květen 6 15:42:28 CEST 2007


dobry den,

ja myslim, ze je vse v poradku. snad akorat pokud v konstruktoru
odvozene tridy (JinaPage.__init__) pouze volate konstruktor predka
nemusite konstruktor uvadet, staci celou JinaPage.__init__ vynechat a
konstruktor se pak zdedi od tridy Page a vse bude fungovat stejne.
konstruktor u JinaPage je nutne uvadet az v pripade ze je odlisny od
konstruktoru Page.

jeste bych si dovolil poznamku k importovani modulu kid:
  import kid
  from kid import *
zda se, ze importovani provadite zbytecne 2x...

co se tyce vhodnosti pouziti dedicnosti to uz bude zrejme jen a jen na
Vas. pokud je skutecne jediny rozdil v promenne data, dalo by se vse
resit zrejme i jedinou tridou s metodou nastavujici data. pokud se
rozhodnote pro pouziti dedicnosti, mozna by jste mohl pouzit neco jako
abstraktniho predka, tj. vytvorit jednu zakladni tridu ktera bude
obsahovat metody a atributy spolecne vsem strankam avsak nebude
reprezentovat zadnou konkretni stranku/y. vsechny ostatni tridy pak
muzete odvodit od ni.

mozna bych jeste v pythonu 2.5 napsal 'class Page(object):' ..

s pozdarvem,
  h.


6 May 2007 04:14:21 -0700, martin.stiborsky na gmail.com
<martin.stiborsky na gmail.com>:
> Zdravím, ještě trochu vás budu otravovat s dotazy :)
> Napsal jsem si dvě třídy, chci se zeptat jestli jsem správně použilu
> dědičnost, zda-li tam není něco zapsáno zbytečně složitě nebo
> nesmyslně ...
>
> kód:
>
> import cherrypy
> import kid
> from kid import *
> kid.enable_import()
> from templates.front import front_page,one_page
>
> serializer = 'xhtml-strict'
> template_list = {'front_page': front_page,'one_page': one_page}
>
> class Page:
>     def __init__(self,page_template):
>         self.template = template_list[page_template]
>         self.template.menu = [('frontpage','/'),
>                               ('foo1','index?page_handler=onepage'),
>                               ('foo2','index?page_handler=onepage')]
>         self.template.data = 'test stranky'
>     def show(self):
>         return self.template
>
> class JinaPage(Page):
>     def __init__(self,page_template):
>         Page.__init__(self, page_template)
>     def show(self):
>         self.template.data = 'uplne jina data'
>         return self.template
>
> Jde mi hlavně o to, že hlavně se bude měnit proměnná data, handlerů
> bude víc, u některých bude vícero proměnných předávaných šabloně,
> takhle se mi to líbí, snad to je i správně....
> Díky moc za každou radu
>
> _______________________________________________
> Python mailing list
> Python na py.cz
> http://www.py.cz/mailman/listinfo/python
>
>


Další informace o konferenci Python