[python] class a subclass
Roman Miklos
RMiklos na pss.sk
Sobota Listopad 11 10:19:15 CET 2006
>ostatni metody rodice se musi znova duplicitne zavadet a volat a je jich
>opravdu dost.
Tak tomu fakt nerozumim. Ak ma metoda potomka robit presne to co metoda
rodice, tak ju nemusis znova explicitne prekryvat, pretoze potomok zdedi
metody od rodice.
Priklad:
-----------
class SCORINGstatistics:
'''
Class for monitoring current state of SCORING
'''
....
def get_results(self):
''' get the results '''
self.get_current_date()
self.select_data()
result_form = \
u"----------------------------------------------\n" +\
u"Momentálny stav k %s\n" +\
u"----------------------------------------------\n" +\
u"Štatistika za obdobie %s - %s\n" +\
u"----------------------------------------------\n" +\
u" Celkový počet dopytov do SCORINGu = %s\n" +\
u" z toho :\n" +\
u" počet dobre spracovaných dopytov = %s\n" +\
u" počet chybne spracovaných dopytov = %s\n" +\
u" počet nespracovaných dopytov = %s\n"
result = result_form \
% (self.datetime,
self.from_date_std,
self.to_date_std,
self.zaslane,
self.sprac_ok,
self.sprac_err,
self.nesprac)
return(result)
...
class SCORINGstatisticsW(SCORINGstatistics):
'''
Windows GUI for SCORINGstatistics
'''
...
def ergebnisse(self):
''' get the result from AS/400 database'''
if self.connected:
results = self.get_results()
if self.statistics == 1:
# full statistics
if self.sprac_ok > 0:
results += u"\n ďalej zo správne spracovaných dopytov :\n\n"+\
self.get_detailed_results()+\
'\n'
self.textfenster.insert(END, '\n'+results)
self.textfenster.see(END)
else:
tkMessageBox.showinfo("!!!CHYBA!!!",u"Neexistuje spojenie so
serverom!")
Class SCORINGstatistics realizuje vsetky metody na SQL-vybery a
vyhodnotenie, mimo ineho definuje metodu get_result(), kde sa vyjkonaju
nejake selekty vytvori sa vysledny vypis vo forme textoveho pola a to sa
vrati ako navratova hodnota.
Trieda potomka SCORINGstatisticsW je len GUI nadstavba . Vobec nema
definovanu metodu get_result() to znamena ani ju neprekryva. Len si ju
zavola vo svojej vlastnej metode ergebnisse() a vysledok vypise do
textoveho okna.
Objekt potomok dedi metody od rodica, ak nenajde danu metodu vo svojom
mennom priestore ide pozried o hladinu nizsie do rodica, ak ju ani tam
nenajde ide zase nizsie do rodica svojho rodica atd....
Takze ja vobec nechapem, naco chces vsetky metody z rodica v potomkovi
prekryvat.
mtip <mtip na atlas.cz>
Sent by: python-bounces na py.cz
11.11.2006 08:21
Please respond to
Konference PyCZ <python na py.cz>
To
Konference PyCZ <python na py.cz>
cc
Subject
Re: [python] class a subclass
To sice ano, ale pak je to mnohem komlikovanejsi, protoze ostatni
metody rodice se musi znova duplicitne zavadet a volat a je jich
opravdu dost.
--
Mirek Nemecek
---------------------------------------------------------------------------
PK> mtip napsal(a):
>> Diky za odpovedi, opravdu jsem si to OOP spatne vylozil. Dosud jsem
>> psal v jazyku, kde prekryvani metod nebylo mozne.
>> Mohli by jste mi tedy na konkretnim prikladu napsat, jak postupovat ?
>>
>> class table:
>> ...
>>
>> class sql(table):
>> ...
>>
PK> Možná jsem mimo, ale mohl bys to řešit dvěmi samostatnými
PK> třídami/instancemi, kdy jedna bude druhou pouze volat, vyžívat, a ne
dědit?
_______________________________________________
Python mailing list
Python na py.cz
http://www.py.cz/mailman/listinfo/python
Mgr. Ing. Roman MIKLÓŠ
Prvá stavebná sporiteľňa a.s.
, P. O. Box 48
Tel.:
Fax:
Další informace o konferenci Python