JPype 1.0 vÀljalaskmine, teek Java klasside juurde pÀÀsemiseks Pythonist

Saadaval vahekihtide vĂ€ljalaskmine JPype 1.0, mis vĂ”imaldab Python rakenduste tĂ€isĂŒhendust Java keele klasside teekidega. JPype abil saab Pythonis kasutada Java spetsiifilisi teeke, luues hĂŒbriidrakendusi, mis ĂŒhendavad Java ja Python koodi. Erinevalt Jython'ist saavutatakse Java integreerimine mitte JVM jaoks Python variandi loomise kaudu, vaid mĂ”lema virtuaalmasina vahelise koostöö kaudu, kasutades jagatud mĂ€lu. Pakutud lĂ€henemine vĂ”imaldab saavutada head jĂ”udlust ja pakub juurdepÀÀsu kĂ”ikidele CPython ja Java teekidele. Projekti kood levitatakse lisensiga Apache 2.0.

Peamised muudatused:

  • JChar on toetav tagastustĂŒĂŒp. JChar pĂ€randatakse ‘str’-st, et tagada ĂŒhilduvus ning rakendab vaikimisi teisendamist ‘int’-i. SeetĂ”ttu lĂ€bib see lepingute tĂ”endid. Kuid see tĂ€hendab, et see ei loeta enam numbriliseks tĂŒĂŒbiks Pythonis ja seetĂ”ttu isinstance(c, int) on False, mis on kooskĂ”las Java tĂŒĂŒbitĂŒĂŒbivahetuse reeglitega.
  • Sisestatud operaator Java tĂŒĂŒbi Type@obj ( @ on Pythonis sisemise korrutamise operaator, Java-s pole seda).
  • Lisatud anotatsioon Java massiivide loomiseks. Type[s1][s2][s3] fikseeritud suurustega massiivide jaoks, Type[:][:][:] massiivide jaoks, mis luuakse hiljem.
  • @FunctionalInterface vĂ”imaldab luua Java funktsioone Python objektidest, millel on __call__.
  • Eemaldatud aegunud JIterator, JException'i kasutamine tehase funksioonina, get_default_jvm_path ja jpype.reflect.
  • Vaikimisi ei toimu Java stringide teisendamist Python stringideks.
  • Python on kuulutanud ‘__int__’ soovitamatuks, seega vaikesuunamised tĂ€isarvu ja ujukomaarvude tĂŒĂŒpide vahel tekitavad TypeError.
  • Aegunud on kasutada JException'i. KĂ”ikide erandite pĂŒĂŒdmise vĂ”i objekti Java eranditĂŒĂŒbiks kontrollimise jaoks tuleks kasutada java.lang.Throwable.
  • Java erandite kaskaadsete pĂ”hjuste peegeldamine toimub nĂŒĂŒd Python stack'i raames.
  • Aegunud on kasutada JString'i. Java stringi loomiseks vĂ”i objekti Java stringi tĂŒĂŒbiks kontrollimiseks kasutage java.lang.String.
  • Java klassides on uuendatud repr meetodeid.
  • java.util.List tĂ€idab lepingud collections.abc.Sequence ja collections.abc.MutableSequence.
  • java.util.Collection tĂ€idab lepingud collections.abc.Collection.
  • Java klassid on suletud ja viskavad TypeError'i, kui neid laiendatakse Pythonist.
  • Control-C töötlemine toimub kiiresti. Eelmised versioonid kukuvad, kui Java töötleb Control-C signaali, kuna need lĂ”petavad Java kutsumise ajal. NĂŒĂŒd loob JPype InterruptedException'i, kui see tagastatakse Java-st. Control-C ei viska suurtest Java protseduuridest vĂ€lja, nagu praegu on rakendatud, kuna Java-l pole sellist vĂ”imalust.

SeejĂ€rgnevalt on loodud parandav vĂ€ljaanne 1.0.1, mis sisaldab muudatusi probleemide ĂŒletamiseks Python 3.8.4 vĂ€ljaandmisega. Python on muutnud loogikat seoses '.__setattr__' kasutamisega 'object' ja 'type' jaoks, takistades selle kasutamist pĂ€randatud klasside muutmiseks. Lisaks on vigade kontrollimine delegeeritud '.__setattr__' meetodist, seega peab teatud tĂ”hususe kontrollide eranditĂŒĂŒbid olema vastavalt uuendatud.

Allikas: opennet.ru

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster