[python] class a subclass

mtip mtip na atlas.cz
Sobota Listopad 11 13:47:31 CET 2006


RC> table ako posledny potomok sa mi zda nespravny navrh. Najjvysie ma byt
RC> daco vseobecne a postupne ako dedis implementujes viac low-level
RC> operacie.

Mam to poradi takto, to je preci postup od vseobecnemu ke konkretnimu:

class binds:
      ...
      
class rowtable(binds):
      ...
      
class table(rowtable):
    '''zpracovava udalosti nad tabulkou
    (pohyb po zaznamech, zmeny zaznamu atd)'''

    def move(self,recordNum):
        '''posun po zaznamech'''
        pass

    def refresh(self,tbl):
        '''obnovi tabulku'''
        pass

    def create(self,fields,tbl):
        this.__fields=fields #ulozi nove nazvy poli
        this.refresh() #obnovi tabulku (S POTOMKEM VYTVORI CHYBU)

class sql(table):
    '''prebira vse z table a vylepsi metody create a refresh'''
    def refresh(self):
        '''prekryje metodu rodice
        nacte zaznamy napr z MySQL a posle do rodice tb'''
        #neco jako opakuj posledni SELECT a ziskej pole tbl
        table.refresh(self,tbl)
        
    def create(self,sqlText):
        '''prekryje metodu rodice
        nacte novou tabulku z sql do pole a preda ho rodici'''
        #neco jako
        #tbl = run (SELECT...)
        #fields = nazvy poli z dotazu select
        table.create(self,fields,tbl)


RC> Ak chces pracovat priamo s pamatou, tak vytvor dalsiu odvodenu classu
RC> mem(table) a prekry prislusne metody sqlCreate a sqlRefresh.
Ale ja preci s pameti pracuju uz takto:
instTable=table()
instTable.create(fields,tbl)

ale uz tomu asi rozumim. Class table ma byt ve skutecnosti nahrazena
class template a nad ni teprve bud class sql nebo class memo, a ty budou
pouze prekryvat dve template metody, jinymi slovy, vyuzit toho, ze i
rodic hleda vzdy nejprve v potomkovi.

Diky za trpelivost.

---
Mirek Nemecek.





Další informace o konferenci Python