kumasulidwa kosanjikiza , zomwe zimalola mapulogalamu a Python kukhala ndi mwayi wofikira ku malaibulale am'kalasi muchilankhulo cha Java. Ndi JPype yochokera ku Python, mutha kugwiritsa ntchito malaibulale apadera a Java kuti mupange mapulogalamu osakanizidwa omwe amaphatikiza ma code a Java ndi Python. Mosiyana ndi Jython, kuphatikiza ndi Java kumatheka osati popanga mtundu wa Python wa JVM, koma polumikizana pamlingo wa makina onse awiri omwe amagwiritsa ntchito kukumbukira kwawo. Njira yomwe ikuperekedwa imalola osati kungochita bwino, komanso imapereka mwayi wopezeka ku malaibulale onse a CPython ndi Java. Project kodi zololedwa pansi pa Apache 2.0.
Zosintha zazikulu:
- JChar imathandizidwa ngati mtundu wobwerera. Kuti zigwirizane, JChar amatenga cholowa kuchokera ku "str" ndikugwiritsa ntchito kutembenuka kwathunthu kukhala "int." Chifukwa chake, imadutsa macheke a mgwirizano. Komabe, izi zikutanthauza kuti sizikuganiziridwanso ngati mtundu wa nambala mu Python, chifukwa chake isinstance(c, int) imayang'ana ku False, zomwe zimagwirizana ndi malamulo a Java akusintha mtundu.
- Wogwiritsa ntchito popanga mtundu wa Java, Type@obj, adayambitsidwa (@ ndi wogwiritsa ntchito wa Python wazinthu zamkati, zomwe kulibe Java).
- Mawu owonjezera popanga ma Java arrays. Lembani[s1][s2][s3] pamagulu okhazikika, Type[:][:][:] pazotsatira zomwe zidzapangidwe pambuyo pake.
- @FunctionalInterface imakupatsani mwayi wopanga ma Java functors kuchokera ku zinthu za Python ndi __call__.
- Kuchotsa JIterator yochotsedwa, kugwiritsa ntchito JException ngati fakitale, get_default_jvm_path ndi jpype.reflect.
- Mwachikhazikitso, zingwe za Java sizisinthidwa kukhala zingwe za Python.
- Python yasiya "__int__", kotero kuti zosamveka pakati pa mitundu yonse ndi zoyandama zidzatulutsa TypeError.
- Kugwiritsa ntchito JException kwatsitsidwa. Kuti mugwire zosiyanitsa zonse kapena kuwona ngati chinthu ndi mtundu wa Java, gwiritsani ntchito java.lang.Throwable.
- Zomwe zimayambitsa kuchotsera kwa Java tsopano zikuwonetsedwa muzithunzi za Python.
- Kugwiritsa ntchito JString kwachotsedwa. Kuti mupange chingwe cha Java kapena onetsetsani kuti chinthucho ndi chamtundu wa Java, gwiritsani ntchito java.lang.String.
- Njira za repr zasinthidwa m'makalasi a Java.
- java.util.List imakwaniritsa makontrakitala a collections.abc.Sequence and collections.abc.MutableSequence.
- java.util.Collection imakwaniritsa mgwirizano wa zosonkhanitsa.abc.Collection.
- Makalasi a Java ndi achinsinsi ndipo amaponya TypeError atakulitsidwa kuchokera ku Python.
- Kugwira kwa Control-C tsopano ndikolondola. Mabaibulo am'mbuyomu adawonongeka pomwe Java idagwira chizindikiro cha Control-C, chifukwa amathetsa Java panthawi yoyimba. Tsopano, JPype iponya InterruptedException pobwerera kuchokera ku Java. Control-C sidzaponyedwa kuchokera ku machitidwe akuluakulu a Java, monga momwe akugwiritsidwira ntchito panopa, popeza Java ilibe makina apadera a izi.
Kutulutsidwa kotsatira, 1.0.1, kunali kukonza, komwe kunaphatikizapo kusintha kuti athetse mavuto ndi Python 3.8.4. Python idasintha malingaliro ogwiritsira ntchito "__setattr__" ya "chinthu" ndi "mtundu," kuletsa kuti isagwiritsidwe ntchito kusintha makalasi otengedwa. Kuwona zolakwika kudaperekedwanso kunjira ya "__setattr__", kotero mitundu yosiyana pamacheke ena amafunikira kusinthidwa moyenera.
Source: opennet.ru
