Pyrex is 'n taal vir skryf Python uitbreiding modules.
Pyrex is 'n taal wat spesiaal ontwerp vir die skryf van Python uitbreiding modules. Dit is ontwerp om die gaping tussen die mooi, hoë-vlak, maklik-om-te gebruik wêreld van Python en die morsige, lae-vlak wêreld van C. oorbrug
Jy kan wonder waarom iemand 'n spesiale taal vir hierdie wil. Python is regtig maklik om te brei met behulp van C of C ++, is dit nie? Waarom nie net skryf jou uitbreiding modules in een van die tale?
Wel, as jy ooit 'n uitbreiding module vir Python geskryf het, sal jy weet dat dinge nie so maklik soos alles wat. Eerste van alles, daar is 'n billike bietjie van die boiler-kode te skryf voordat jy kan selfs die grond af kry. Dan is jy gekonfronteer met die probleem van die omskakeling tussen Python en C data tipes. Vir die basiese tipes soos getalle en stringe dit is nie te sleg nie, maar enigiets meer omvattende en jy in die pluk Python voorwerpe uitmekaar met behulp van die Python / C API oproepe, wat vereis dat jy noukeurige oor die handhawing van verwysing tel, nagaan vir foute wees by elke stap en die skoonmaak van behoorlik as iets verkeerd gaan. Enige foute en jy het 'n nare ongeluk dit is baie moeilik om te ontfout.
Verskeie tools is ontwikkel om 'n paar van die laste van die vervaardiging van uitbreiding kode, wat dalk sluk is die beste bekend te verlig. Sluk neem 'n definisie lêer bestaan uit 'n mengsel van C-kode en gespesialiseerde verklarings, en produseer 'n uitbreiding module. Dit skryf al die boiler vir jou, en in baie gevalle jy dit kan gebruik sonder om te weet oor die Python / C API. Maar jy moet API oproepe gebruik as 'n aansienlike herstrukturering van die data word benodig tussen Python en C.
Wat meer is, sluk gee jou geen hulp op alle as jy wil om 'n nuwe gebou in die tipe Python skep. Dit sal suiwer Python klasse wat wrap (in 'n effens onveilige wyse) verwysings na C data strukture op te wek, maar die skepping van 'n ware tipes uitbreiding is buite sy omvang.
Nog 'n noemenswaardige poging om dit makliker te maak om uit te brei Python is PyInline, geïnspireer deur 'n soortgelyke fasiliteit vir Perl. PyInline kan jy embed stukke C-kode in die middel van 'n Python lêer, en outomaties uittreksels hulle en stel hulle in 'n uitbreiding. Maar dit vat net outomaties die basiese tipes, en soos met sluk, beteken dit nie die skepping van nuwe Python tipes te spreek.
Pyrex het ten doel om ver gaan as wat enige van hierdie vorige tools bied. Pyrex handel oor die basiese tipes net so maklik as sluk, maar dit kan jy ook skryf kode te omskep tussen arbitrêre Python data strukture en arbitrêre C data strukture, in 'n eenvoudige en natuurlike manier, sonder om iets oor die Python / C API weet. Dit is reg - niks! Nie te doen wat jy hoef te bekommer oor verwysing tel of foutopsporing - dit is alles versorg outomaties, agter die skerms, net soos dit is in geïnterpreteer Python kode. En wat meer is, Pyrex kan jy definieer nuwe gebou in tipes Python net so maklik as jy 'n nuwe klasse in Python kan definieer.
Wat is nuut in hierdie release:
· Tiny bugfix om 'n blad / ruimte probleem in die distutils uitbreiding reg te stel.
Sagteware besonderhede:
Weergawe: 0.9.4.1
Upload datum: 3 Jun 15
Lisensie: Gratis
Populariteit: 113
Kommentaar nie gevind