Siideynta JPype 1.0, maktabadaha gelitaanka xiisadaha Java ee Python

La heli karo lakabka sii deyn JPype 1.0, kaas oo u oggolaanaya codsiyada Python inay si buuxda u helaan maktabadaha fasalka ee luqadda Java. Iyadoo JPype ee Python, waxaad isticmaali kartaa Java-gaar ah maktabadaha si aad u abuurto codsiyada isku dhafan ee isku dara Java iyo Python code. Si ka duwan Jython, is dhexgalka Java laguma gaaro iyada oo loo abuurayo kala duwanaansho Python ee JVM ah, laakiin iyada oo loo marayo isdhexgalka heerka labada mashiinnada farsamada iyadoo la adeegsanayo xusuusta la wadaago. Habka la soo jeediyay ayaa u oggolaanaya ma aha oo kaliya in la gaaro waxqabad wanaagsan, laakiin sidoo kale waxay bixisaa dhammaan CPython iyo maktabadaha Java. Koodhka mashruuca qaybiyey shatiga ku haysta Apache 2.0.

Isbeddellada ugu waaweyn:

  • JChar waxa loo taageeraa sidii soo noqoshada. Waafaqid, JChar waxay ka dhaxashay "str" ​​waxayna hirgelisaa beddelaad daahsoon oo loo beddelo "int". Sidaa darteed, waxay gudbisaa jeegaga qandaraasyada. Laakiin tani waxay ka dhigan tahay in aan hadda loo tixgalin nooc nambarada Python sidaas darteed isinstance (c, int) waxay qiimeeyaan Been, taas oo la socota xeerarka beddelka nooca Java.
  • Hawlwadeen ayaa la soo bandhigay si uu u tuuro nooca Java, Type@obj (@ waa hawlwadeen Python ah oo loogu talagalay alaabta gudaha; Java mid ma leh).
  • Qoraal lagu daray abuurista arrays Java Nooca[s1][s2][s3] ee cabbirada cabbirka go'an, Nooca[:][:][:] ee arraysyada la abuuri doono hadhow.
  • @FunctionalInterface wuxuu kuu ogolaanayaa inaad Java ka abuurto walxaha Python leh __call__.
  • Jiterator la jaray, isticmaalka JException warshad ahaan, get_default_jvm_path iyo jpype.reflect.
  • Sida caadiga ah, xargaha Java looma rogo xargaha Python.
  • Python waxa ay meesha ka saartay "__int__", sidaa daraadeed jilbaha aan tooska ahayn ee u dhexeeya noocyada kala dhexgalka iyo sabbaynaya waxay soo saari doonaan NoocaError.
  • Isticmaalka JException waa la joojiyay. Si aad u qabato dhammaan waxyaabaha ka reeban, ama aad hubiso in shay uu yahay nooca ka reeban Java, isticmaal java.lang.Throwable.
  • Sababaha soo jiidashada leh ee ka-reebitaanka Java ayaa hadda ka muuqda jaan-gooyooyinka Python-ka.
  • JString waa la joojiyay Si aad u abuurto xadhig Java ah, ama si aad u hubiso in shay uu ka mid yahay xadhkaha Java, isticmaal java.lang.String.
  • Hababka repr ayaa lagu cusboonaysiiyay fasalada Java.
  • java.util.List waxa ay fulisaa qandaraasyada ururinta.abc.Taxane iyo ururin.abc.MutableSequence.
  • java.util.Collection waxay fulisaa qandaraaska ururinta.abc.Ururinta.
  • Fasalada Java waa kuwo gaar ah waxayna tuurayaan TypeError marka laga kordhiyo Python.
  • Si taxadar leh ula tacaal Control-C. Noocyadii hore way burburaan marka Java farsameeyo calaamada Control-C sababtoo ah waxay joojinayaan Java inta lagu jiro wicitaanka. JPype hadda waxay tuuri doontaa InterruptedException marka laga soo laabanayo Java. Control-C ma tuuri doonto nidaamyada waaweyn ee Java sida hadda la hirgeliyay, maadaama Java uusan haysan qalab gaar ah tan.

Marka xigta, sii-deynta saxda ah ee 1.0.1 ayaa la sameeyay, taas oo ku dartay isbeddel ku saabsan ka shaqeynta dhibaatooyinka Python 3.8.4 siideynta. Python waxa ay bedeshay macquulka ah ee ku saabsan isticmaalka "__setattr__" ee "shay" iyo "nooca", isaga oo ka hortagaya in loo isticmaalo in lagu beddelo fasallada la soo qaatay. Hubinta khaladka ayaa sidoo kale laga soo wakiishay habka "__setattr__", marka noocyada ka reeban ee hubinta ku filnaanta qaarkood waa in loo cusboonaysiiyaa si waafaqsan.

Source: opennet.ru

Add a comment