lagerslÀpp , som tillÄter Python-applikationer att ge full Ätkomst till Java-klassbibliotek. Med JPype kan du anvÀnda Java-specifika bibliotek frÄn Python, skapa hybridapplikationer som blandar Java och Python-kod. Till skillnad frÄn Jython uppnÄs integrering med Java inte genom att skapa en Python-variant för JVM, utan genom att interagera pÄ nivÄn för bÄda virtuella maskinerna med delat minne. Det föreslagna tillvÀgagÄngssÀttet möjliggör inte bara bra prestanda, utan ger ocksÄ tillgÄng till alla CPython- och Java-bibliotek. Projektkod licensierad under Apache 2.0.
HuvudÀndringar:
- JChar stöds som en returtyp. För kompatibilitet Ă€rver JChar frĂ„n "str" ââoch implementerar en implicit konvertering till "int". DĂ€rför klarar den kontraktskontroller. Detta innebĂ€r dock att den inte lĂ€ngre betraktas som en numerisk typ i Python, och dĂ€rför utvĂ€rderas isinstance(c, int) till False, vilket överensstĂ€mmer med Javas regler för typkonvertering.
- En operator för att casta en Java-typ, Type@obj, har introducerats (@ Àr Pythons operator för innerprodukt, vilken inte finns i Java).
- Lade till notation för att skapa Java-arrayer. Skriv[s1][s2][s3] för arrayer med fast storlek, skriv[:][:][:] för arrayer som skapas senare.
- @FunctionalInterface lÄter dig skapa Java-funktionorer frÄn Python-objekt med __call__.
- Tog bort den förÄldrade JIteratorn, anvÀndningen av JException som en fabrik, get_default_jvm_path och jpype.reflect.
- Som standard konverteras inte Java-strÀngar till Python-strÀngar.
- Python har förÄldrat "__int__", sÄ implicita omvandlingar mellan heltals- och flyttalstyper kommer att producera ett TypeError.
- AnvÀndningen av JException har förÄldrats. För att fÄnga alla undantag eller kontrollera att ett objekt Àr av Java-undantagstyp, anvÀnd java.lang.Throwable.
- Kaskadorsakar till Java-undantag Äterspeglas nu i Python-stackframes.
- AnvÀndningen av JString har förÄldrats. För att skapa en Java-strÀng eller kontrollera att ett objekt Àr av typen Java-strÀng, anvÀnd java.lang.String.
- Repr-metoder har uppdaterats i Java-klasser.
- java.util.List uppfyller kontrakten för collections.abc.Sequence och collections.abc.MutableSequence.
- java.util.Collection uppfyller kontraktet för collections.abc.Collection.
- Java-klasser Àr privata och kommer att utlösa ett TypeError nÀr de utökas frÄn Python.
- Control-C-hanteringen Àr nu korrekt. Tidigare versioner kraschade nÀr Java hanterade Control-C-signalen, eftersom de avslutade Java under anropet. Nu kommer JPype att kasta en InterruptedException nÀr den ÄtervÀnder frÄn Java. Control-C kommer inte att kastas frÄn stora Java-procedurer, som det Àr implementerat för nÀrvarande, eftersom Java inte har en speciell mekanism för detta.
NÀsta utgÄva, 1.0.1, var en fix, som inkluderade Àndringar för att ÄtgÀrda problem med Python 3.8.4. Python Àndrade logiken för att anvÀnda "__setattr__" för "object" och "type", vilket förhindrade att det anvÀndes för att modifiera hÀrledda klasser. Felkontroll delegerades ocksÄ frÄn metoden "__setattr__", sÄ undantagstyper i vissa sanity-kontroller behövde uppdateras i enlighet dÀrmed.
KĂ€lla: opennet.ru
