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@py.cz
http://www.py.cz/mailman/listinfo/python





--

____________________________
Ing. Jan Janech
Katedra softverovych technologii
Fakulta riadenia a informatiky
Zilinska Univerzita
_______________________________________________
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python

Odpovedet emailem