On Apr 28, 2008, at Apr 28:3:13 PM, Robert Bradshaw wrote:
> You need to write
>
> mything.doit = classmethod(testit.doit)
>
> - Robert
>>
thanks, but now I get a different error. :) It feels like I am
missing some bit of python "magic", which I find annoying given that
usually python is "the way I think is the way it is".
thanks again,
bb
The full error is:
------------------------------------------------------------------------
---
AttributeError Traceback (most recent call
last)
/Users/bblais/python/testit.py in <module>()
22
23 a=mything(10)
---> 24 print a.doit(50)
25
26
/Users/bblais/python/c_testit.so in c_testit.doit (c_testit.c:216)()
----> 1
2
3 cpdef doit(object self,int x):
4
5 cdef int i
6 cdef int N=self.N
7 cdef int val
/Users/bblais/python/c_testit.so in c_testit.doit (c_testit.c:137)()
2
3 cdef int i
----> 4 cdef int N=self.N
5 cdef int val
6
AttributeError: type object 'mything' has no attribute 'N'
WARNING: Failure executing file: <testit.py>
The code is:
=============================
#testit.py
class mything(object):
def __init__(self,N):
self.N=N
def doit(self,x):
val=0
for i in range(self.N,x):
val+=i
return val
try:
import c_testit
mything.doit=classmethod(c_testit.doit)
print "Using cython version"
except ImportError:
pass
if __name__=="__main__":
a=mything(10)
print a.doit(50)
=============================
# c_testit.pyx
cpdef doit(object self,int x):
cdef int i
cdef int N=self.N
cdef int val
val=0
for i from N<=i<x:
val+=i
return val
_______________________________________________
Cython-dev mailing list
[email protected]
http://codespeak.net/mailman/listinfo/cython-dev