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