Pyrex je jazyk pro psaní modulů Pythonu prodloužení.
Pyrex je jazyk speciálně navržený pro psaní rozšiřujících modulů Pythonu. Je navržen tak, aby překlenout propast mezi pěkné, vysoké úrovni a snadno použitelný svět Python a chaotický, low-level svět C.
Možná se divíte, proč by někdo chtěl speciální jazyk pro toto. Python je opravdu snadno rozšířit pomocí C nebo C ++, není to? Proč ne jen napsat své rozšiřujících modulů v jednom z těchto jazyků?
No, pokud jste někdy napsal rozšiřující modul pro Python, budete vědět, že věci nejsou tak jednoduché, jak to všechno. Za prvé, je zde reálná trochu často používaný kódu napsat předtím, než si můžete dokonce dostat ze země. Pak jste se potýkají s problémem převod mezi Python a C datové typy. U základních typů, jako jsou čísla a řetězce to není tak špatné, ale nic víc propracované a vy jste do vychystávání Python objekty od sebe pomocí / C volání API v Pythonu, který vyžaduje, abyste byli pečlivý o zachování referenčních počty, kontrola chyb na každém kroku a pro čištění správně, pokud se něco pokazí. Veškeré chyby a máte ošklivou nehodu, který je velmi obtížné ladit.
Různé nástroje byly vyvinuty, aby zmírnit některé z břemen na výrobu příponu, z nichž snad SWIG je nejlépe známý. SWIG se definiční soubor sestávající ze směsi C kód a specializované prohlášení, a vytváří prodlužovací modul. To píše všechnu často používaný pro tebe, av mnoha případech jej můžete použít, aniž by věděl o API Python / C. Ale musíte použít volání API, pokud je vyžadován podstatné restrukturalizace dat mezi Python a C.
A co víc, SWIG vám žádnou pomoc vůbec, pokud chcete vytvořit nový vestavěný typ Python. To bude generovat čistý-Python tříd, které zábal (v poněkud nebezpečným způsobem) ukazatele na C datových struktur, ale vytvoření skutečných typů prodlužovacích je mimo její rámec.
Další pozoruhodný pokus na to, aby bylo jednodušší rozšířit Python je PyInline, inspirován obdobným zařízením pro Perl. PyInline umožňuje vložit kousky kódu C uprostřed souboru Python, a automaticky extrahuje je a zpracovává je do prodloužení. Ale to převádí pouze základní typy automaticky, a jako s SWIG, to neřeší vytvoření nových typů Python.
Pyrex si klade za cíl jít daleko nad rámec toho, co některý z těchto dřívějších nástrojů poskytuje. Pyrex společnosti se základními typy stejně snadno jako SWIG, ale to také umožňuje psát kód pro konverzi mezi libovolnými Python datových struktur a libovolných C datových struktur, jednoduchým a přirozeným způsobem, aniž by věděl něco o Python / C API. To je pravda - vůbec nic! Ani budete muset starat o referenční počítání nebo kontrolu chyb - to vše postaráno automaticky, v zákulisí, stejně jako je tomu v interpretovaný kód v jazyce Python. A co víc, Pyrex umožňuje definovat nové vestavěné typy Python stejně snadno jako můžete definovat nové třídy v Pythonu.
Co je nového v této verzi:
· Tiny bugfix k opravě problému karta / prostoru v prodloužení distutils.
Podrobnosti Software:
Verze: 0.9.4.1
Datum uploadu: 3 Jun 15
Licence: Volný
Popularita: 113
Komentáře nebyl nalezen