|
Re: pyrex functions to replace a method (Re: replace a method in class: how: msg#00049python.pyrex
Hi Brian, Brian Blais wrote: > 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 What is the 'self' for? After all, you are sticking a /function/ into the object, not a /method/. Your function will not receive a 'self' argument automatically as it is stuck into the instance and not part of the class. Stefan |
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| Previous by Date: | Re: pyrex functions to replace a method (Re: replace a method in class: how?): 00049, Stefan Behnel |
|---|---|
| Next by Date: | Codegen for C headers.: 00049, Mark Heslep |
| Previous by Thread: | Re: [Pyrex] pyrex functions to replace a method (Re: replace a method in class: how?)i: 00049, Greg Ewing |
| Next by Thread: | Codegen for C headers.: 00049, Mark Heslep |
| Indexes: | [Date] [Thread] [Top] [All Lists] |
| News | FAQ | advertise |