Питхон - Ц проширења

Преглед садржаја

Језик програмирање Ц. Био је доступан програмерима дуги низ година, будући да смо као компајлирани језик програме могли учинити оптималнијим и бржим, захваљујући чему је овај језик још увек на снази јер омогућава брзо извршавање различитих врста обраде.

Ин Питхон Моћ да се развијамо на читљив и пријатељски начин долази с малом цијеном, а то је да се перформансе могу изгубити у неким врло специфичним процесима, па ако овај губитак није прихватљив и доводи наш програм у опасност, морамо тражити алтернативе. Његова флексибилност нам омогућава да уградимо модуле направљене на другим језицима, попут Ц.

Писање екстензија на Ц.
писати Ц наставци није тако транспарентно као што то радите Ц # или у ЈАВА да са различитим Питхон имплементацијама то чинимо врло брзим и лаким, са Ц морамо да се придржавамо а АПИ врло строги, међутим ове потешкоће довеле су до алата који покушавају побољшати овај процес, један од њих је СВИГ.

СВИГ је акроним за Једноставан омотач и генератор интерфејса је алат који нам омогућава да развијемо проширења у Ц или Ц ++, а затим их пакујемо за употребу у језицима на високом нивоу, као што су Питхон, Перл, Руби и други.

Шта ради СВИГ?
Користити СВИГ Морамо само да испунимо неколико једноставних корака, па да видимо шта нам даље треба:

  • Морамо написати интерфејс за наш Ц код, ова врста датотеке је врло слична заглавља; у неким случајевима можете директно користити датотеку заглавља.
  • Трчимо СВИГ у датотеци интерфејса, ово изазива генерисање више кода у Ц, то јест омоту.
  • Састављамо датотеку интерфејс заједно са пакером са којим генеришемо дељену библиотеку коју можемо користити са језицима компатибилним СВИГ.

Мало вежбе
Савладавши мало теорије, погледајмо сада пример овога који смо објаснили, направићемо модул који детектује да ли је низ палиндром, односно да се чита на исти начин у оба смера, ово није да представља проблем ПитхонМеђутим, када су то заиста велики низови, може се уочити проблем перформанси, прво да видимо код на следећој слици, а затим да видимо како имплементирајте га помоћу СВИГ -а:

Овде имамо имплементацију у Ц, да бисмо знали да ли је низ палиндромски, онда градимо интерфејс који је следећи код:

С обзиром да имамо потпуне захтеве на нивоу Ц, за сада ћемо видети у чему морамо да радимо СВИГ да бисте могли да користите ово:

Прво морамо покренути следећу команду:

 $ свиг -питон палиндром.и
Где палиндром.и то је наш интерфејс. Ово ће генерисати датотеке Питхон потребно, онда морамо све компајлирати, за овај корак морамо врло добро знати путање наших елемената да бисмо могли направити исправне референце:
 гцц -ц палиндроме.ц гцц -И $ ПИТХОН_ХОМЕ -И $ ПИТХОН_ХОМЕ / Укључи -ц палиндроме_врап.ц гцц -подељени палиндром.о палиндроме_врап.о -о _палиндроме.со 
Након ових корака можемо користити нашу нову библиотеку у Питхон као што следи:
 >>> импорт _палиндроме >>> дир (_палиндроме) ['__доц__', '__филе__', '__наме__', 'ис_палиндроме'] >>> _палиндроме.ис_палиндроме ('ипреферпи') 1 >>> _палиндроме.ис_палиндроме ('нотлоб ') 0 
Овим завршавамо водич, јер видимо да је мало сложен имплементирати проширења у Ц. међутим постигнути учинак је вредан тога.

Да ли вам се допао и помогао овај водич?Можете наградити аутора притиском на ово дугме да бисте му дали позитиван поен
wave wave wave wave wave