[python] Záměna funkce v instanci objektu

Jan Janech devel na atlas.sk
Úterý Duben 20 11:37:35 CEST 2010


Este ma napadlo jedno riesenie. Ale rovnako blbe ako vsetky ostatne :) 
Len je ciste, bez metaprogramovania.

class tridaA():
     @staticmethod
     def _b(self, x):
         self.x=x

     def b(self, x):
         return self._b(self, x)


a potom:

a = tridaA()
a._b = c

a bude fungovat.

Jan Janech


302302 wrote:
> Mám nadefinovanou třídu
> 
> class tridaA():
>         def b(self,x):
>               self.x=x
> 
> vytvořím její instanci
> 
> a=tridaA()
> 
> místo metody b, ale chci, aby se vždy v tomto objektu zavolala funkce c, která je nadefinována někde mimo:
> 
> def c(self, x):
>          self.x = x+1
> 
> Pokud to ale pouze přiřadím a zavolám
> 
> a.b=c
> a.b(1)
> 
> tak se do parametru self automaticky nepřiřazuje daný objekt a.
> 
> Jak můžu zaměnit funkce ve vytvořené instanci objektu, aby se to chovalo jako běžná metoda?
> 
> Czenek
> _______________________________________________
> Python mailing list
> Python na py.cz
> http://www.py.cz/mailman/listinfo/python
> 
> 
> 


-- 

____________________________
Ing. Jan Janech
Katedra softverovych technologii
Fakulta riadenia a informatiky
Zilinska Univerzita


Další informace o konferenci Python