Tukunga o JPype 1.0, whare pukapuka mo te uru ki nga karaehe Java mai i te Python

Wātea tuku interlayer JPype 1.0, ka taea e koe te whakarite i te uru katoa o nga tono Python ki nga whare pukapuka karaehe Java. Ma te JPype mai i te Python, ka taea e koe te whakamahi i nga whare pukapuka Java-motuhake ki te hanga tono ranu e whakakotahi ana i te waehere Java me te Python. Kaore i rite ki a Jython, ko te whakauru ki a Java ka tutuki ehara i te mea i hangaia he momo Python mo te JVM, engari ma te taunekeneke i te taumata o nga miihini mariko e rua ma te whakamahi i te mahara tiritahi. Ko te huarahi e whakaarohia ana e kore e taea anake te whakatutuki i nga mahi pai, engari ka uru atu ki nga whare pukapuka CPython me Java katoa. Waehere kaupapa tohaina e kua raihanatia i raro i te Apache 2.0.

Nga huringa matua:

  • Ka tautokohia a JChar hei momo whakahoki. Mo te hototahi, i ahu mai a JChar i te "str" ​​​​me te whakatinana i te huringa ki te "int". Na reira, ka tukuna e ia nga haki i roto i nga kirimana. Engari ko te tikanga kua kore e kiia he momo tau i roto i te Python, no reira ka arotakehia e isinstance(c, int) ki False, e rite ana ki nga ture whakarereke momo Java.
  • Kua whakauruhia he kaiwhakahaere ki te maka i te momo Java Type@obj (@ - he kaiwhakahaere Python tenei mo te hua o roto, karekau i Java).
  • He tohu taapiri mo te hanga i nga raupapa Java. Momo[s1][s2][s3] mo nga huānga o te rahi mau, Momo[:][:][:] mo nga huānga hei hanga i muri mai.
  • @FunctionalInterface ka taea e koe te hanga i nga mahi Java mai i nga mea Python me te __call__.
  • Kua tangohia te JIterator kua mutu, te whakamahi wheketere JException, get_default_jvm_path me jpype.reflect.
  • Ma te taunoa, kaore nga aho Java e huri ki nga aho Python.
  • Kua whakakorehia e Python te "__int__", no reira ko nga maka i waenga i nga momo integer me nga momo rewa ka puta he MomoHau.
  • Kua whakakorehia te whakamahi o JException. Hei hopu i nga tuunga katoa, hei tirotiro ranei he momo rereke Java tetahi mea, ka whai a java.lang.Throwable.
  • Ko nga take rereke Java kua kitea inaianei i roto i nga papa taapu Python.
  • Kua whakakorehia te whakamahinga o JString. Hei waihanga aho Java, tirohia ranei he momo aho Java tetahi mea, whakamahia te java.lang.String.
  • Kua whakahoutia nga tikanga Repr i roto i nga karaehe Java.
  • Ka whakatutukihia e java.util.List nga kirimana mo collections.abc.Sequence me collections.abc.MutableSequence.
  • Ka tutuki a java.util.Collection te kirimana o for collections.abc.Collection.
  • Ko nga karaehe Java he mea motuhake ka maka he TypeError ka toro atu mai i te Python.
  • Kia pai te hapai i te Mana-C. Ko nga putanga o mua ka pakaru i te wa e tukatuka ana a Java i te tohu Mana-C, na te mea ka mutu a Java i te wa e karanga ana. Ka tukuna e JPype he InterruptedException ka hoki mai i Java. E kore te Mana-C e whana i nga mahinga Java nui penei i tenei wa, na te mea kaore he whare motuhake a Java mo tera.

I hangaia he tukunga papaki o 1.0.1, i taapiri i nga huringa ki te whakatika i nga raru me te tukunga o Python 3.8.4. I hurihia e Python te arorau mo te whakamahi "__setattr__" mo te "mea" me te "momo", kia kore ai e whakamahia hei whakarereke i nga karaehe i ahu mai. I tua atu, kua tohatohahia te arowhai hapa mai i te tikanga "__setattr__", no reira me whakahou nga momo otahi i etahi o nga arowhai hauora.

Source: opennet.ru

Tāpiri i te kōrero