[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