Inlinec β€” Π½ΠΎΠ² Π½Π°Ρ‡ΠΈΠ½ Π·Π° ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° C ΠΊΠΎΠ΄ Π² Python скриптовС.

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ inlinec прСдставя Π½ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄ Π·Π° inline интСграция Π½Π° C ΠΊΠΎΠ΄ Π² Python скриптовС. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π° C сС опрСдСлят Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ Π² Π΅Π΄ΠΈΠ½ Ρ„Π°ΠΉΠ» с Python ΠΊΠΎΠ΄Π°, ΠΊΠ°Ρ‚ΠΎ сС отдСлят с Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€Π° Β«@inlinecΒ». ΠžΠ±ΠΎΠ±Ρ‰Π΅Π½ΠΈΡΡ‚ скрипт сС изпълнява ΠΊΠ°ΠΊΡ‚ΠΎ Π΅ ΠΎΡ‚ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π° с python ΠΈ сС Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π° с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° прСдоставСния Π² Python ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΡŠΠΌ Π½Π° ΠΊΠΎΠ΄Π΅Ρ†ΠΈΡ‚Π΅, ΠΊΠΎΠΉΡ‚ΠΎ позволява ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ Π½Π° парсСр Π·Π° ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π°Π½Π΅ Π½Π° скрипта ΠΏΡ€Π΅Π΄ΠΈ Π½Π΅Π³ΠΎΠ²ΠΎΡ‚ΠΎ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅ ΠΎΡ‚ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π° (ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΠΌΠΎΠ΄ΡƒΠ» codecs сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎ прС编码иранС Π½Π° тСкста, Π½ΠΎ позволява ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΎ трансформиранС Π½Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° скрипта).

ΠŸΠ°Ρ€ΡΠ΅Ρ€ΡŠΡ‚ сС ΡΠ²ΡŠΡ€Π·Π²Π° ΠΊΠ°Ρ‚ΠΎ ΠΌΠΎΠ΄ΡƒΠ» (Β«from inlinec import inlinecΒ»), ΠΊΠΎΠΉΡ‚ΠΎ ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° ΠΏΡŠΡ€Π²ΠΈΡ‡Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈ Π½Π° Π»Π΅Ρ‚ΠΈΡ‰Π° ΠΏΡ€Π΅Π²Π΅ΠΆΠ΄Π° опрСдСлСнията Π½Π° C Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΎΡ‚Π΄Π΅Π»Π΅Π½ΠΈ с Π°Π½Π°Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ @inlinec, Π² ctypes ΠΎΠ±Π²ΠΈΠ²ΠΊΠΈ ΠΈ замСня тялото Π½Π° C функцията с ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° Ρ‚Π΅Π·ΠΈ ΠΎΠ±Π²ΠΈΠ²ΠΊΠΈ. Π‘Π»Π΅Π΄ Ρ‚Π°ΠΊΠΎΠ²Π° ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π°Π½Π΅ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΡŠΡ‚ Π½Π° Python ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π° Π²Π΅Ρ‡Π΅ ΠΊΠΎΡ€Π΅ΠΊΡ‚Π΅Π½ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π°Π½ ΠΈΠ·Ρ…ΠΎΠ΄Π΅Π½ тСкст Π½Π° скрипта, Π² ΠΊΠΎΠΉΡ‚ΠΎ C Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅ сС ΠΈΠ·Π²ΠΈΠΊΠ²Π°Ρ‚ с ctypes. ПодобСн ΠΌΠ΅Ρ‚ΠΎΠ΄ ΡΡŠΡ‰ΠΎ сС ΠΏΡ€ΠΈΠ»Π°Π³Π° Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Pyxl4, ΠΊΠΎΠΉΡ‚ΠΎ позволява смСсванС Π½Π° HTML ΠΈ Python ΠΊΠΎΠ΄ Π² Π΅Π΄ΠΈΠ½ Ρ„Π°ΠΉΠ».

# coding: inlinec
from inlinec import inlinec

@inlinec
def test():
#include<stdio.h>
void test() {
printf("Hello, world");
}

Π Π°Π·Π²ΠΈΡ‚ΠΈΠ΅Ρ‚ΠΎ засСга сС прСдставя ΠΊΠ°Ρ‚ΠΎ СкспСримСнталСн ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ, Π² ΠΊΠΎΠΉΡ‚ΠΎ сС отбСлязват нСдоразумСния, ΠΊΠ°Ρ‚ΠΎ липса Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° ΠΏΡ€Π΅Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ Π² функцията (освСн Π·Π° Π½ΠΈΠ·ΠΎΠ²Π΅), нСобходимост ΠΎΡ‚ изпълнСниС Π½Π°
"gcc -E" Π·Π° ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° ΠΊΠΎΠ΄Π°, Π·Π°ΠΏΠ°Π·Π²Π°Π½Π΅ Π½Π° ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π½ΠΈ *.so, *.o ΠΈ *.c Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π°Ρ‚Π° дирСктория, липса Π½Π° ΠΊΠ΅ΡˆΠΈΡ€Π°Π½Π΅ Π½Π° прСобразувания Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΈ ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Π½Π΅ Π½Π° Π½Π΅Π½ΡƒΠΆΠ½ΠΈ Π΅Ρ‚Π°ΠΏΠΈ Π½Π° Π°Π½Π°Π»ΠΈΠ· (Π³ΠΎΠ»Π΅ΠΌΠΈ закъснСния ΠΏΡ€ΠΈ всяко изпълнСниС).

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster