Native class methods
arkanes at gmail.com
Tue Oct 9 18:41:23 CEST 2007
On 09 Oct 2007 17:45:12 +0200, Stefan Arentz <stefan.arentz at gmail.com> wrote:
> "Chris Mellon" <arkanes at gmail.com> writes:
> > On 09 Oct 2007 17:20:09 +0200, Stefan Arentz <stefan.arentz at gmail.com> wrote:
> > >
> > > Is there an easy way to implement a specific method of a Python class
> > > in C? Like a native method in Java? I would really like to do the
> > > majority of my class code in Python and just do one or two methods
> > > in C.
> > >
> > > S.
> > >
> > Weave kinda does this - you can use it write inline C code, which it
> > extracts and compiles for you. (http://scipy.org/Weave)
> > You might also want to look at Pyrex and/or Cython, which let you
> > write in a Python-like language that is compiled to C.
> > (http://www.cosc.canterbury.ac.nz/greg.ewing/python/Pyrex/ and
> > http://cython.org).
> > Depending on what you want to do in C, just writing it as a normal
> > shared library and calling it with ctypes might also be an effective
> > solution. (in the standard library, as of 2.5)
> Yeah I'm really trying to do this without any dependencies on external
> libraries. The ctypes way looks interesting but I had really hoped for
> something more JNI-like :-/
Weave is a runtime solution, but Pyrex and Cython are both compilers
(they compile a Python like language to C, which you the compile into
a single extension module), and ctypes is in the standard library.
Using ctypes would be pretty much just like JNI, except it's dynamic
and not horrible.
More information about the Python-list