[python] class a subclass
mtip
mtip na atlas.cz
Pátek Listopad 10 16:05:27 CET 2006
Bohuzel zmenu nazvu metody v potomku chci nechat jako nouzove reseni.
Potrebuju prekryt obe metody, protoze po aplikaci potomka nemaji
smysl a dokonce jejich pouzitim by doslo k chybe, proto prekryti je
idealni zpusob, jak se jich zbavit. Potreboval bych neco jako super u
Javy.
Mirek.
RM> Realny priklad:
RM> class MyGrep1:
RM> """
RM> obsahuje metody na vyhladavanie retazcov v suboroch
RM> """
RM> ...
RM> def usage(self):
RM> """ Benutzungshilfe druecken """
RM> usage =\
RM> '\n %s Ver. %s, [rm] %s (rmiklos na pss.sk)\n'\
RM> % (self.short_progname,self.version,self.creationdate) \
RM> + ' Searching for a list of strings in a list of a files\n\n'\
RM> + ' [python] %s options \n\n'\
RM> % self.progname \
RM> + ' MANDATORY OPTIONS: \n'\
RM> + ' -f <file> | --file <file>\n'\
RM> + ' required argument:\n'\
RM> + ' <file> - file name or list of file names delimited by "
RM> ",\n'\
RM> + ' which can contain wildcard characters * and ?\n'\
RM> + ' -s <string> | --string <string>\n'\
RM> + ' required argument:\n'\
RM> + ' <string> - string or list of strings delimited by " "\n'\
RM> + ' OPTIONS:\n'\
RM> + ' -h | --help print this help message\n'\
RM> + ' -d | --dbginfo print some debug informations'
RM> print usage
RM> ...
RM> Metoda usage je vlastne command-line helpovnik ked zadas mygrep -h, alebo
RM> mygrep --help
RM> Teraz rozsirim funkcionalitu povodneho programu o nejaky novy command line
RM> option (-c resp --nocase) a preto musim zmenit aj helpovnik, takze
RM> vytvorim novy Class
RM> class MyGrep2(MyGrep1):
RM> """
RM> rozsirenie triedy MyGrep1 o cmdline-option
RM> -c
RM> --nocase
RM> """
RM> ...
RM> def usage(self):
RM> """ Benutzungshilfe druecken """
RM> # Urspruengliche Parrent-Methode anrufen
RM> MyGrep1.usage(self)
RM> # Help-Erweiterung
RM> usage =\
RM> ' -c | --nocase ignore case'
RM> print usage
RM> Takze rozsiril som help tak ze vytlacim stary help + este jeden riadok
RM> Roman Miklos <RMiklos na pss.sk>
RM> Sent by: python-bounces na py.cz
RM> 10.11.2006 15:38
RM> Please respond to
RM> Konference PyCZ <python na py.cz>
RM> To
RM> Konference PyCZ <python na py.cz>
RM> cc
RM> Subject
RM> Re: [python] class a subclass
RM> 1)Mozes premenovat prn v triede dietata, t.j. v b napr. na prnb, to
RM> znamena neprekryvat prn() v a:
RM> class a:
RM> def prn(self):
RM> print 'a',self
RM> def ma(self):
RM> self.prn()
RM> class b(a):
RM> def prnb(self):
RM> print 'b',self
RM> def ma(self):
RM> '''prekryje a.ma()'''
RM> a.ma(self)
RM> x=b()
RM> x.ma()
RM> 2) Alebo ak potrebujes v prn() objektu b nieco z prn() objektu a mozes ju
RM> najprv zavolat a potom tam este nieco dodat:
Další informace o konferenci Python