[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