Mixing Python and C classes in a module

John Machin sjmachin at lexicon.net
Tue Oct 9 23:18:38 CEST 2007

On 10/10/2007 12:56 AM, Stefan Arentz wrote:
> Is it possible to mix classes defined in both Python and C in the same
> module? Ideally I would like to be able to do:
>  from some.module import MyPythonClass, MyCClass
> I guess that would mean that this would look like this on disk:
>  some/
>    __init__.py
>    module.py      (contains MyPythonClass)
>    module.so      (contains MyCClass)

Alternative to other suggestions:

Instead of module.so, call it _module.so. Then down the end of module.py:

     from _module import *
except ImportError:
     # either panic or shrug as appropriate

Note: the "shrug" response would be appropriate for the use case where 
"module" contains all necessary functionality, and the 
optionally-present "_module" contains replacement classes/types and/or 
functions that are better in some sense e.g. more memory/CPU efficient.


More information about the Python-list mailing list