Thanks for all who replied to this question about replacing a method.  I feel a 
little sheepish for not having caught that I have to replace it in the class, 
not the 
instance, but I have found a very similar problem trying to replace a method 
using a 
function defined in pyrex.   I post all of the code below, but there are 
several files.

The main code is:

import module_py   # import a function from a python module
import module_pyrex # import a function from a pyrex extension module

class This(object):

     def update1(self,val):
         print val

     def update2(self,val):
         print "2",val

     def update3(self,val):
         print "3",val

def local_update(obj,val):

     print "local",val


This.update1=local_update  # replace the method from a local function
This.update2=module_py.python_update  # replace the method from a python module
This.update3=module_pyrex.pyrex_update  # replace the method from a pyrex module

t=This()

t.update1('local')  # works fine
t.update2('python') # works fine
t.update3('pyrex')  # gives a typeerror function takes exactly 2 arguments (1 
given)
#---------------------------------------------------------------------------------

#module_py.py

def python_update(self,val):
     print "python module",val
#---------------------------------------------------------------------------------

#module_pyrex.pyx

def pyrex_update(self,val):
     print "pyrex module",val

#---------------------------------------------------------------------------------


any ideas why the pyrex function fails?


                        thanks,


                                bb




-- 
-----------------

              [EMAIL PROTECTED]
              http://web.bryant.edu/~bblais
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to