Inlinec - txoj hauv kev tshiab los siv C code hauv Python scripts

Qhov project inlinec Ib txoj hauv kev tshiab rau kev sib koom ua ke ntawm C code rau hauv Python scripts tau raug npaj. C ua haujlwm tau txhais ncaj qha rau hauv tib Python code cov ntaub ntawv, tseem ceeb los ntawm "@inlinec" decorator. Cov ntawv sau luv tau raug ua raws li tus neeg txhais lus Python thiab parsed siv cov txheej txheem muab hauv Python codecs, uas ua rau nws muaj peev xwm txuas tus parser los hloov cov ntawv ua ntej parsing los ntawm tus neeg txhais lus (raws li txoj cai, codecs module yog siv rau cov ntawv transcoding pob tshab, tab sis nws kuj tso cai rau koj los hloov cov ntsiab lus ntawm tsab ntawv).

Lub parser txuas nrog raws li ib qho module ("los ntawm inlinec ntshuam inlinec"), uas ua rau thawj zaug ua thiab ntawm-tus-fly txhais cov ntsiab lus ntawm C ua haujlwm tseem ceeb siv @inlinec annotations rau hauv ctypes bindings thiab hloov lub cev ntawm C ua haujlwm nrog hu rau cov kev khi no. Tom qab qhov kev hloov pauv zoo li no, tus neeg txhais lus Python tau txais cov ntawv hloov pauv qhov tseeb ntawm tsab ntawv, uas C ua haujlwm raug hu ua siv. ctypes. Ib txoj kev zoo sib xws kuj tau siv hauv qhov project Pyxl4, uas tso cai rau koj los sib xyaw HTML thiab Python code hauv ib cov ntaub ntawv.

#coding: inlinec
los ntawm inlinec import inlinec

@inlinec
def test():
#suav nrog
void test() {
printf("Nyob zoo, ntiaj teb");
}

Txoj kev loj hlob tam sim no tau nthuav tawm raws li kev sim ua qauv, uas muaj cov kev tsis txaus ntseeg raws li qhov tsis muaj kev txhawb nqa rau cov ntawv hla dhau (tshwj tsis yog cov hlua) rau kev ua haujlwm, yuav tsum tau khiav.
"gcc -E" rau code preprocessing, txuag nruab nrab *.so, *.o thiab *.c cov ntaub ntawv nyob rau hauv cov npe tam sim no, tsis caching lub hloov dua siab tshiab version thiab ua tsis tsim nyog parsing theem (ntev qeeb txhua zaus nws khiav).

Tau qhov twg los: opennet.ru

Ntxiv ib saib