txheej tso tawm , 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 muaj ntawv tso cai nyob rau hauv Apache 2.0.
Cov kev hloov loj:
- JChar tau txais kev txhawb nqa ua hom rov qab. Rau kev sib raug zoo, JChar tau txais los ntawm "str" thiab siv kev hloov pauv tsis qhia rau "int." Yog li ntawd, nws dhau qhov kev kuaj xyuas daim ntawv cog lus. Txawm li cas los xij, qhov no txhais tau tias nws tsis raug suav hais tias yog hom lej hauv Python, thiab yog li ntawd isinstance (c, int) ntsuas rau Cuav, uas yog sib xws nrog Java cov cai hloov pauv hom.
- Ib tus neeg teb xov tooj rau kev tsim ib hom Java, Type@obj, tau raug qhia (@ yog Python tus neeg teb xov tooj rau cov khoom sab hauv, uas tsis muaj nyob hauv Java).
- Ntxiv cov cim rau kev tsim Java arrays. Hom [s1][s2][s3] rau cov arrays loj ruaj khov, Hom [:][:][:] rau cov arrays uas yuav tsim tom qab.
- @FunctionalInterface tso cai rau koj los tsim Java functors los ntawm Python cov khoom nrog __call__.
- Tshem tawm JIterator uas tsis siv lawm, siv JException ua lub Hoobkas, get_default_jvm_path thiab jpype.reflect.
- Los ntawm lub neej ntawd, Java cov hlua tsis raug hloov mus rau Python cov hlua.
- Python tau tsis siv "__int__", yog li ntawd, kev siv implicit casts ntawm integer thiab floating-point types yuav tsim ib qho TypeError.
- Kev siv JException tau raug tshem tawm lawm. Txhawm rau ntes txhua qhov kev zam lossis xyuas seb ib yam khoom puas yog hom kev zam Java, siv java.lang.Throwable.
- Cov laj thawj ntawm Java kev zam tam sim no tau cuam tshuam hauv Python stack frames.
- Kev siv JString tau raug tshem tawm lawm. Yuav kom tsim tau ib txoj hlua Java lossis xyuas seb ib yam khoom puas yog hom hlua Java, siv java.lang.String.
- Cov txheej txheem Repr tau hloov kho tshiab hauv Java chav kawm.
- java.util.List ua tiav cov ntawv cog lus rau collections.abc.Sequence thiab collections.abc.MutableSequence.
- java.util.Collection ua tiav daim ntawv cog lus rau collections.abc.Collection.
- Cov chav kawm Java yog ntiag tug thiab yuav pov ib qho TypeError thaum txuas ntxiv los ntawm Python.
- Kev tswj hwm Control-C tam sim no yog qhov tseeb. Cov qauv dhau los tau poob thaum Java tswj hwm lub teeb liab Control-C, vim tias lawv yuav xaus Java thaum lub sijhawm hu. Tam sim no, JPype yuav pov ib qho InterruptedException thaum rov qab los ntawm Java. Control-C yuav tsis raug pov los ntawm cov txheej txheem loj Java, raws li tam sim no tau siv, vim Java tsis muaj lub tshuab tshwj xeeb rau qhov no.
Qhov kev tso tawm tom ntej, 1.0.1, yog qhov kho, uas suav nrog kev hloov pauv los daws cov teeb meem nrog Python 3.8.4. Python tau hloov pauv qhov kev xav rau kev siv "__setattr__" rau "khoom" thiab "hom," tiv thaiv nws los ntawm kev siv los hloov kho cov chav kawm uas tau muab los. Kev kuaj xyuas qhov yuam kev kuj tau muab los ntawm txoj kev "__setattr__", yog li cov hom kev zam hauv qee qhov kev kuaj xyuas kev noj qab haus huv yuav tsum tau hloov kho raws li.
Tau qhov twg los: opennet.ru
