[python] class a subclass

Robert Cernansky hslists na zoznam.sk
Sobota Listopad 11 14:44:28 CET 2006


On Sat, 11 Nov 2006 13:47:31 +0100 mtip <mtip na atlas.cz> wrote:
> 
> RC> Ak chces pracovat priamo s pamatou, tak vytvor dalsiu odvodenu
> RC> classu mem(table) a prekry prislusne metody sqlCreate
> RC> a sqlRefresh.

> Ale ja preci s pameti pracuju uz takto:
> instTable=table()
> instTable.create(fields,tbl)

Ano, toto by neslo. Treba vyuzit tu classu mem. V tejto suvislosti ma
napadlo, ze by to chcelo trochu vseobecnejsie navrhnut metodu create()
v table. Pretoze tam vstupuje sqlText, co je v pripade prace s pamatou
alebo suborom nezmysel. Myslim, ze by tam kludne mohlo byt nieco
taketo:

def create(self, inputData):
   tbl, fields = self.sqlCreate(inputData)
   ...

V odvodenych triedach by sme uz vedeli co sa skryva v inputData. V sql
by to bol SQL retazec, v mem by to mohol byt tuple (fields, tbl). Cize
by sa dalo spravit:

instMem.create((fields, tbl))

co je nahrada za 

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.

Presne tak, akurat cast "Class table ma byt ve skutecnosti nahrazena
class template" mozes vypustit. Ta template je vlastne table. Mozno ta
pomylil anglicky vyraz ale ked som hovoril o template tak som nikdy
nemal na mysli konkretny nazov triedy. Myslel som tym len to, ze
trieda table je sablona - vzor (aj ked len ciastocne, lebo prekryvame
len metody, ktore su specificke pre konkretny engine).

Robo


-- 
Robert Cernansky
E-mail: hslists na zoznam.sk
Jabber: HS na jabber.sk



Další informace o konferenci Python