[python] rozsirovani pythonu - C a Python
Matej Pivoluska
pivoluska na matfyz.cz
Úterý Říjen 21 12:52:53 CEST 2003
On Tue, Oct 21, 2003 at 09:00:24AM +0200, Jan Svec wrote:
> On Fri, 17 Oct 2003, Radim Kolar wrote:
>
> > Muze mne nekdo odkazat na priklad, jak se mixuji native python metody
> > a C methody v objektu? V Jave se napise .java soubor a oznaci se
> > v nem jako native. Jelikoz Python nema .py pro import C modulu ale jen
> > .so, musi se to zjevne nejak udelat v C kodu.
> >
> > udelal jsem si novy objekt (class) a naimplementoval jsem si 2 metody v
> > jazyku C (interface do libfftw2), pricemz zbytek metod bych rad udelal
> > v Pythonu, pricemz opravdu nechci mit pythonsky kod natvrdo v C kodu.
> > Nemuzu v dokumentaci najit, jak to udelat.
>
> Kdyz jsem neco podobneho resil, tak jsem prisel na jednu moznost.
> Vytvorit si C modul s C tridou a pak Python tridu, ktera podedi od te v
> C. V ni doimplementuju vsechny Pythoni metody. Do C tridy a jejich metod
> pak dodelam volani tech pythonovskych. Pointery na ne ziskam pomoci
> PyObject_GetAttrString() na object self. Ponevadz ten je instanci
> podedene tridy (musi se vzdy vytvaret instance podedene tridy), obsahuje
> jeji metody a proto to projde.
Priatelia,
neviem, ci ste uz poculi o nastroji SWIG, ale asi by Vam to mohlo pomoct
pri rozsirovani (nielen) pythonu o nativne c-ckove moduly.
mP
Další informace o konferenci Python