[Pyrex] pyrex functions to replace a method (Re: replace a method in class: how?)
Brian Blais
bblais at bryant.edu
Tue Jun 27 11:24:20 UTC 2006
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
--
-----------------
bblais at bryant.edu
http://web.bryant.edu/~bblais
More information about the Pyrex
mailing list