Tso tawm JPype 0.7.2, lub tsev qiv ntawv rau kev nkag mus rau Java chav kawm los ntawm Python

Muaj txheej tso tawm JPype 0.7.2, uas tso cai rau Python cov ntawv thov kom muaj kev nkag mus rau cov tsev qiv ntawv hauv chav kawm hauv Java. Nrog JPype los ntawm Python, koj tuaj yeem siv Java cov tsev qiv ntawv tshwj xeeb los tsim cov ntawv thov sib xyaw uas sib xyaw Java thiab Python code. Tsis zoo li Jython, kev koom ua ke nrog Java ua tiav tsis yog los ntawm kev tsim Python sib txawv rau JVM, tab sis los ntawm kev sib cuam tshuam ntawm qib ntawm ob lub tshuab virtual siv lub cim xeeb sib koom. Txoj kev npaj tso cai tsis yog tsuas yog ua kom tiav kev ua tau zoo, tab sis kuj muab kev nkag mus rau txhua lub tsev qiv ntawv CPython thiab Java. Qhov project code faib los ntawm muaj ntawv tso cai nyob rau hauv Apache 2.0.

Cov kev hloov loj:

  • Cov kev zam pov tseg hauv C ++ thiab Java code tam sim no muab ib qho kev zam thaum muaj kev zam tshwm sim hauv Python code. Yog li, kom tau txais cov ntaub ntawv hais txog kev zam pawg, koj tsis tas yuav hu rau stacktrace().
  • Kev hu rov qab ceev tau tripled.
  • Qhov tseem ceeb (los ntawm kev txiav txim ntawm qhov loj me) nce kev sib kis ceev hauv
    numpy buffers ntawm multidimensional arrays. Multidimensional primitives dhau cov ntawv nyeem nkaus xwb uas tsim nyob rau hauv JVM nrog ib tug sib txuas C layout.

  • Txhua qhov nthuav tawm sab hauv tau raug hloov nrog CPython kev siv, thiab cov cim __javaclass__, __javavalue__ thiab __javaproxy__
    tshem tawm. Ib qho tshwj xeeb Java qhov tau ntxiv rau txhua hom CPython uas tau txais los ntawm cov chav kawm jpype. Tag nrho cov rooj ntiag tug tau tsiv mus rau CPython. Java hom yuav tsum tam sim no tau txais los ntawm JClass metaclass, uas siv hom slots. Mixins rau Python hauv paus chav kawm tsis raug tso cai. Cov hom yog Object, Proxy, Exception, Number thiab Array thiab tau txais ncaj qha los ntawm CPython qhov kev siv sab hauv.

  • Txhim kho tracing thiab zam kev tuav.
  • Array slices yog tam sim no ua tiav raws li cov kev xav uas txhawb kev sau ntawv rov qab mus rau qhov qub, xws li numpy array. Rau array slicing, kev txhawb nqa yog muab rau kev teeb tsa thiab khaws cov txiaj ntsig hauv cov kauj ruam (slice (pib, nres, kauj ruam)).
  • Arrays tam sim no txhawb "__reversed__".
  • Java arrays tam sim no txhawb nqa memoryview API thiab tshem tawm qhov kev vam khom ntawm numpy kom dhau cov ntsiab lus tsis.
  • Numpy tsis yog qhov kev vam khom ntxiv lawm (ntxiv) thiab lub cim xeeb hloov mus rau numpy yog muaj yam tsis suav nrog suav nrog kev txhawb nqa.
  • JInterface yog tsim los ua cov chav kawm meta. Siv isinstance(cls, JInterface) los xyuas cov interfaces.
  • Ntxiv TLDs uas ploj lawm "mil", "net" thiab "edu" rau default imports.
  • Txhim kho cov lus yuam kev rau UnsupportedClassVersion thaum pib.
  • java.util.Map tam sim no cuam tshuam KeyError yog tias tsis pom lub caij. Cov nqi uas tsis muaj nuj nqis tseem rov qab Tsis muaj raws li xav tau. Siv get() yog tias koj xav kho cov yuam sij tas li tsis muaj.
  • Tshem tawm java.util.Collection raws li nws txawv overloads ntawm tshem tawm (khoom) thiab tshem tawm (int) ntawm Cov Npe. Siv Java tshem tawm () txoj kev nkag mus rau Java tus cwj pwm ib txwm, tab sis hom casting yog pom zoo rau kev tswj ntau dhau.
  • java.lang.IndexOutOfBoundsException tam sim no tuaj yeem ntes tau siv IndexError tshwj xeeb chav kawm thaum nkag java.util.List cov ntsiab lus.

Tau qhov twg los: opennet.ru

Ntxiv ib saib