Hoʻokuʻu ʻia o JPype 1.0, nā hale waihona puke no ke komo ʻana i nā papa Java mai Python

Loaʻa hoʻokuʻu papa jpg 1.0, hiki i nā polokalamu Python ke komo piha i nā hale waihona puke ma ka ʻōlelo Java. Me JPype mai Python, hiki iā ʻoe ke hoʻohana i nā hale waihona puke Java-specific no ka hana ʻana i nā noi hybrid e hui pū ai i ka code Java a me Python. ʻAʻole like me Jython, hoʻokō ʻia ka hoʻohui ʻana me Java ma o ka hana ʻana i kahi ʻano Python no ka JVM, akā ma o ka launa pū ʻana ma ka pae o nā mīkini virtual ʻelua me ka hoʻohana ʻana i ka hoʻomanaʻo like. ʻO ke ala i manaʻo ʻia ʻaʻole hiki ke hoʻokō i ka hana maikaʻi wale nō, akā hāʻawi pū i ke komo i nā hale waihona puke CPython a me Java. Code papahana mahele ʻia e laikini ma lalo o Apache 2.0.

Nā hoʻololi nui:

  • Kākoʻo ʻia ʻo JChar ma ke ʻano he ʻano hoʻihoʻi. No ka hoʻohālikelike, hoʻoili ʻo JChar mai "str" ​​​​a hoʻokō i kahi hoʻololi implicit i "int". No laila, hāʻawi ia i nā loiloi i nā ʻaelike. Akā ʻo ia ke ʻano ʻaʻole ia i manaʻo ʻia he ʻano helu ma Python a no laila isinstance(c, int) loiloi i False, i kūlike me nā lula hoʻololi ʻano Java.
  • Ua hoʻolauna ʻia kahi mea hana e hoʻolei i kahi ʻano Java, Type@obj (@ he mea hoʻohana Python no ka huahana i loko; ʻAʻohe Java).
  • Hoʻohui ʻia ka notation no ka hana ʻana i nā arrays Java. ʻAno[s1][s2][s3] no nā pūʻulu nui paʻa, Type[:][:][:] no nā papa hana e hana ʻia ma hope.
  • @FunctionalInterface hiki iā ʻoe ke hana i nā mea hana Java mai nā mea Python me __call__.
  • Wehe ʻia ʻo JIterator i hoʻopau ʻia, hoʻohana iā JException ma ke ʻano he hale hana, get_default_jvm_path a me jpype.reflect.
  • Ma ka maʻamau, ʻaʻole i hoʻololi ʻia nā kaula Java i nā kaula Python.
  • Ua hoʻopau ʻo Python i ka "__int__", no laila e hoʻopuka ʻia kahi TypeError ma waena o nā ʻano integer a me nā ʻano floating-point.
  • Ua hoʻopau ʻia ka hoʻohana ʻana iā JException. No ka hopu ʻana i nā ʻokoʻa a pau, a i ʻole e nānā inā he ʻano ʻokoʻa Java kekahi mea, e hoʻohana i ka java.lang.Throwable.
  • Hōʻike ʻia nā kumu hoʻokaʻawale o Java i kēia manawa i nā kiʻi paʻi Python.
  • Ua hoʻopau ʻia ʻo JString. No ka hana ʻana i kaula Java, a i ʻole e nānā i ke ʻano o ke kaula Java, e hoʻohana i ka java.lang.String.
  • Ua hoʻonui ʻia nā ʻano Repr i nā papa Java.
  • Hoʻokō ʻo java.util.List i nā ʻaelike no collections.abc.Sequence a me collections.abc.MutableSequence.
  • Hoʻokō ʻo java.util.Collection i ka ʻaelike no collections.abc.Collection.
  • He pilikino nā papa Java a e hoʻolei iā TypeError ke hoʻonui ʻia mai Python.
  • E mālama pono iā Control-C. Hāʻule nā ​​mana o mua i ka wā e hana ai ʻo Java i kahi hōʻailona Control-C no ka mea e hoʻopau lākou iā Java i ke kāhea ʻana. E hoʻolei ʻo JPype i kahi InterruptedException i ka hoʻi ʻana mai Java. ʻAʻole e hoʻolei aku ʻo Control-C i nā kaʻina Java nui e like me ka hoʻokō ʻana i kēia manawa, no ka mea, ʻaʻohe mea hana kūikawā no Java.

A laila, ua hoʻokumu ʻia kahi hoʻokuʻu hoʻoponopono 1.0.1, kahi i hoʻohui i nā hoʻololi e hana i nā pilikia me ka Python 3.8.4 hoʻokuʻu. Ua hoʻololi ʻo Python i ka noʻonoʻo e pili ana i ka hoʻohana ʻana o "__setattr__" no "mea" a me "type", e pale ana i ka hoʻohana ʻana e hoʻololi i nā papa i loaʻa. Ua hāʻawi ʻia ka nānā hewa ʻana mai ke ʻano "__setattr__", no laila pono e hoʻonui ʻia nā ʻano ʻokoʻa i kekahi mau loiloi kūpono.

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka