ΠΡΠΎΠ΅ΠΊΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Ρ Π½ΠΎΠ² ΠΌΠ΅ΡΠΎΠ΄ Π·Π° inline ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Π½Π° C ΠΊΠΎΠ΄ Π² Python ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅. Π€ΡΠ½ΠΊΡΠΈΠΈ Π½Π° C ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π² Π΅Π΄ΠΈΠ½ ΡΠ°ΠΉΠ» Ρ Python ΠΊΠΎΠ΄Π°, ΠΊΠ°ΡΠΎ ΡΠ΅ ΠΎΡΠ΄Π΅Π»ΡΡ Ρ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠ° Β«@inlinecΒ». ΠΠ±ΠΎΠ±ΡΠ΅Π½ΠΈΡΡ ΡΠΊΡΠΈΠΏΡ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° ΠΊΠ°ΠΊΡΠΎ Π΅ ΠΎΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ° Ρ python ΠΈ ΡΠ΅ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½ΠΈΡ Π² Python ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΡΠΌ , ΠΊΠΎΠΉΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ Π½Π° ΠΏΠ°ΡΡΠ΅Ρ Π·Π° ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½Π΅ Π½Π° ΡΠΊΡΠΈΠΏΡΠ° ΠΏΡΠ΅Π΄ΠΈ Π½Π΅Π³ΠΎΠ²ΠΎΡΠΎ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ ΠΎΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ° (ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΠΌΠΎΠ΄ΡΠ» codecs ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΠΎ ΠΏΡΠ΅ηΌη ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ΅ΠΊΡΡΠ°, Π½ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΎ ΡΡΠ°Π½ΡΡΠΎΡΠΌΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠΊΡΠΈΠΏΡΠ°).
ΠΠ°ΡΡΠ΅ΡΡΡ ΡΠ΅ ΡΠ²ΡΡΠ·Π²Π° ΠΊΠ°ΡΠΎ ΠΌΠΎΠ΄ΡΠ» (Β«from inlinec import inlinecΒ»), ΠΊΠΎΠΉΡΠΎ ΠΈΠ·Π²ΡΡΡΠ²Π° ΠΏΡΡΠ²ΠΈΡΠ½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈ Π½Π° Π»Π΅ΡΠΈΡΠ° ΠΏΡΠ΅Π²Π΅ΠΆΠ΄Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡΡΠ° Π½Π° C ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΎΡΠ΄Π΅Π»Π΅Π½ΠΈ Ρ Π°Π½Π°Π½ΠΎΡΠ°ΡΠΈΠΈ @inlinec, Π² ctypes ΠΎΠ±Π²ΠΈΠ²ΠΊΠΈ ΠΈ Π·Π°ΠΌΠ΅Π½Ρ ΡΡΠ»ΠΎΡΠΎ Π½Π° C ΡΡΠ½ΠΊΡΠΈΡΡΠ° Ρ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° ΡΠ΅Π·ΠΈ ΠΎΠ±Π²ΠΈΠ²ΠΊΠΈ. Π‘Π»Π΅Π΄ ΡΠ°ΠΊΠΎΠ²Π° ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½Π΅ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΡΡ Π½Π° Python ΠΏΠΎΠ»ΡΡΠ°Π²Π° Π²Π΅ΡΠ΅ ΠΊΠΎΡΠ΅ΠΊΡΠ΅Π½ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½ ΠΈΠ·Ρ ΠΎΠ΄Π΅Π½ ΡΠ΅ΠΊΡΡ Π½Π° ΡΠΊΡΠΈΠΏΡΠ°, Π² ΠΊΠΎΠΉΡΠΎ C ΡΡΠ½ΠΊΡΠΈΠΈΡΠ΅ ΡΠ΅ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Ρ Ρ . ΠΠΎΠ΄ΠΎΠ±Π΅Π½ ΠΌΠ΅ΡΠΎΠ΄ ΡΡΡΠΎ ΡΠ΅ ΠΏΡΠΈΠ»Π°Π³Π° Π² ΠΏΡΠΎΠ΅ΠΊΡΠ° , ΠΊΠΎΠΉΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΡΠΌΠ΅ΡΠ²Π°Π½Π΅ Π½Π° 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
