[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