[python] Přetížení třídní metody

Jaroslav Aster 50861 na mail.muni.cz
Čtvrtek Květen 5 09:44:55 CEST 2005


Petr Prikryl píše v Čt 05. 05. 2005 v 08:41 +0200:

> Předpokládám, že nežádoucí je jiné jméno metody 
> při jejím volání. Při definici nepokládám jiné
> jméno metody za závadu. Pak lze psát:
> 

Předpokládáte správně. 

> class C:
> 
>     def __init__(self):
>         self.method = self.objectmethod    
> 
>     def objectmethod(self, fname):
>         print "objectmethod:", fname
> 
>     @classmethod
>     def method(cls, profile, fname):
>         print "classmethod:", profile, fname
> 
> 
> C.method("profil", "soubor")
> C().method("soubor")
> 

Toto vypadá přesně tak jak potřebuji. 

> Pro případ, že byste byl student Masarykovy university 
> a tohle byla domácí úloha, ponechávám vysvětlení na Vás.
> 

Student Masarykovy univerzity jsem, ale domací ukol to není. Pracuji na
transformační knivhovně a rozhodl jsem se to napsat v Pythnou z důvodu
snadného načtení dynamicky generovaného kódu. V Pythonu začínám, tak
ještě přesně nevím, co si v tomto jazyku mohu dovolit. Každopádně děkuji
za radu.

-- 
Jaroslav 'orm' Aster





Další informace o konferenci Python