Převod funkce z Pythonu do C

Vašek

Převod funkce z Pythonu do C
« kdy: 19. 10. 2015, 16:09:08 »
Ahoj,

mám funkci v pythonu s takovouhle hlavičkou:

def CSAI(seed, SK1, SK2, SK3, wait)

seed je typu list.

Potřeboval bych udělat funkci v c/c++, která by měla podobnou hlavičku a brala pythonovský list jako argument.

Díky

Vašek
« Poslední změna: 19. 10. 2015, 21:43:14 od Petr Krčmář »


Logik

  • *****
  • 857
    • Zobrazit profil
    • E-mail
Re:Poradíte někdo s převodem funkce z pythonu do c?
« Odpověď #1 kdy: 19. 10. 2015, 16:36:29 »
A proč? K čemu to má sloužit?

Vašek

Re:Poradíte někdo s převodem funkce z pythonu do c?
« Odpověď #2 kdy: 19. 10. 2015, 16:38:35 »
Potřebuju tu funkci převést z pythonu do dll.

Vašek

hu

Re:Poradíte někdo s převodem funkce z pythonu do c?
« Odpověď #3 kdy: 19. 10. 2015, 17:58:26 »
Potřebuju tu funkci převést z pythonu do dll.

Vašek

To je zajímavá formulace. KaždopádnĚ http://cython.org/

Jenda

Re:Poradíte někdo s převodem funkce z pythonu do c?
« Odpověď #4 kdy: 19. 10. 2015, 18:21:36 »
> a brala pythonovský list jako argument

To je fakt divný požadavek. Zkus swig, je tam na to funkce, ale přijde mi, že to je nesmysl dělat takhle. Spíš bych to ještě v Pythonu zkusil třeba přes struct převést na něco C-like.


Ivan Nový

Re:Poradíte někdo s převodem funkce z pythonu do c?
« Odpověď #5 kdy: 19. 10. 2015, 18:48:54 »

it expert

Re:Poradíte někdo s převodem funkce z pythonu do c?
« Odpověď #6 kdy: 19. 10. 2015, 19:14:13 »
Kód: [Vybrat]
namespace py = boost::python;

void CSAI( py::list seed, py::object SK1, py::object SK2, py::object SK3, py::object wait)
{

}

Vašek

Re:Převod funkce z Pythonu do C
« Odpověď #7 kdy: 20. 10. 2015, 11:27:03 »
Asi to udělám tak, že ten list převedu na pole..
To bude nejjednodušší.

Vašek

Jann

Re:Převod funkce z Pythonu do C
« Odpověď #8 kdy: 20. 10. 2015, 11:40:54 »
Asi to udělám tak, že ten list převedu na pole..
To bude nejjednodušší.

Vašek

No, je podzim, takže on tam ten list co nevidět spadne sám.

ByCzech

Re:Převod funkce z Pythonu do C
« Odpověď #9 kdy: 20. 10. 2015, 12:00:54 »
Asi to udělám tak, že ten list převedu na pole..
To bude nejjednodušší.

Vašek

No, je podzim, takže on tam ten list co nevidět spadne sám.

Jsem si vždycky myslel, že na programování musí být talent, ale dneska do toho zdá se chce fušovat kde kdo... :)

Logik

  • *****
  • 857
    • Zobrazit profil
    • E-mail
Re:Převod funkce z Pythonu do C
« Odpověď #10 kdy: 20. 10. 2015, 12:54:56 »
A jak chceš tý DLL předávat jako argument pythoní list?

Jinak cython by mohl být řešením, ale mám podezření, že něco řešíš špatně. K čemu bude sloužit ta DLL a proč
do ní potřebuješ dávat pythoní funkci? Kdo ji bude volat a odkud?

- Potřebuješ volat python z jiného jazyka? Pak nepotřebuješ přijímat pythoní list.
- Potřebuješ volat jiný jazyk z pythonu? Pak je řešení více, např. F2PY nebo Cython (doporučuji ten).
Ovšem tady nejprve musíš vůbec vyřešit, jak a čím budeš tu nepythoní funkci volat z pythonu a ne
nejprve řešit formát argumentů.... A spíše doporučuji volat jednodušší jednoúčelové funkce, než
něco složitého zpracovávající složité datové struktury.
- Potřebuješ volat python z pythonu? Pak je dll zbytečná....
- (možnost volat jiný jazyk z jiného jazyka radši nezmiňuji)...