[python] rozsirovani pythonu - C a Python

Jan Svec honza na py.cz
Úterý Říjen 21 09:00:24 CEST 2003


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.

Doufam, ze to bylo z meho popisu srozumitelne

--
S pozdravem    .-------------------------.
Jan Svec       | Znate jazyk Python? NE? |
               | zkuste http://www.py.cz |
.--------------+-------------------------+
|            <honza na py.cz>               |
|     http://www.py.cz/Members/honza     |
|            honzas na jabber.cz            |
`----------------------------------------'




Další informace o konferenci Python