Native class methods

Jean-Paul Calderone exarkun at divmod.com
Tue Oct 9 18:06:32 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 :-/
>

JNI is awful.  I can't imagine why you'd want something like it.  However,
since you do, why don't you just use the CPython/C API?  It's the direct
equivalent of JNI (sorry, it's not quite as complex or horrible, though).

  http://docs.python.org/api/api.html

Jean-Paul



More information about the Python-list mailing list