Sakin JPype 1.0, dakunan karatu don samun damar darussan Java daga Python

Akwai sakin layi JPYpe 1.0, wanda ke ba da damar aikace-aikacen Python su sami cikakkiyar damar zuwa ɗakunan karatu na aji a cikin yaren Java. Tare da JPype daga Python, zaku iya amfani da takamaiman ɗakunan karatu na Java don ƙirƙirar ƙa'idodin ƙa'idodi waɗanda suka haɗa lambar Java da Python. Ba kamar Jython ba, ana samun haɗin kai tare da Java ba ta hanyar ƙirƙirar bambance-bambancen Python don JVM ba, amma ta hanyar hulɗa a matakin na'urori masu kama da juna ta amfani da ƙwaƙwalwar ajiya. Hanyar da aka tsara ta ba da damar ba kawai don cimma kyakkyawan aiki ba, amma kuma yana ba da dama ga duk ɗakunan karatu na CPython da Java. Lambar aikin rarraba ta lasisi a ƙarƙashin Apache 2.0.

Babban canje-canje:

  • Ana goyan bayan JChar azaman nau'in dawowa. Don dacewa, JChar ya gaji daga "str" ​​kuma yana aiwatar da jujjuyawar juyawa zuwa "int". Saboda haka, ya wuce cak a cikin kwangila. Amma wannan yana nufin cewa an daina la'akari da nau'in lambobi a Python don haka isinstance(c, int) yana kimantawa zuwa Ƙarya, wanda ya yi daidai da ka'idodin canza nau'in Java.
  • An gabatar da ma'aikaci don jefa nau'in Java, Type@obj (@ ma'aikacin Python ne don samfurin ciki; Java ba shi da ɗaya).
  • Ƙara bayanin kula don ƙirƙirar tsararrun Java. Buga[s1] [s2] [s3] don tsayayyen tsararraki masu girma, Nau'in[:][:][:] don tsararrun da za a ƙirƙira daga baya.
  • @FunctionalInterface yana ba ku damar ƙirƙirar ma'aikatan Java daga abubuwan Python tare da __call__.
  • Cire JIterator da aka cire, amfani da JException azaman masana'anta, get_default_jvm_path da jpype.reflect.
  • Ta hanyar tsoho, igiyoyin Java ba su canza su zuwa igiyoyin Python ba.
  • Python ya yanke "__int__", don haka simintin gyare-gyare tsakanin lamba da nau'ikan masu iyo za su haifar da Nau'inError.
  • An daina amfani da JException. Don kama duk keɓantacce, ko duba cewa abu nau'in keɓantawa ne na Java, yi amfani da java.lang.Throwable.
  • Abubuwan da ke haifar da keɓancewar Java yanzu suna nunawa a cikin firam ɗin tari na Python.
  • An soke JString. Don ƙirƙirar kirtani Java, ko don bincika cewa abu na nau'in kirtani Java ne, yi amfani da java.lang.String.
  • An sabunta hanyoyin repr a cikin azuzuwan Java.
  • java.util.List yana aiwatar da kwangiloli don tarin.abc.Sequence and collections.abc.MutableSequence.
  • java.util.Collection yana aiwatar da kwangilar tarin.abc.Tari.
  • Azuzuwan Java masu zaman kansu ne kuma za su jefa TypeError idan an tsawaita su daga Python.
  • Sarrafa Control-C a hankali. Sigarorin da suka gabata sun yi karo lokacin da Java ke aiwatar da siginar Control-C saboda za su ƙare Java yayin kiran. JPype yanzu zai jefa InterruptedException lokacin dawowa daga Java. Control-C ba zai fitar da manyan hanyoyin Java kamar yadda ake aiwatarwa a halin yanzu ba, tunda Java ba shi da kayan aiki na musamman don wannan.

Bayan haka, an ƙirƙiri sakin gyara 1.0.1, wanda ya ƙara canje-canje don aiki tare da matsaloli tare da sakin Python 3.8.4. Python ya canza tunani game da amfani da "__setattr__" don "abu" da "nau'i", yana hana yin amfani da shi don canza azuzuwan da aka samo. An kuma ba da wakilcin bincikar kuskure daga hanyar "__setattr__", don haka ya kamata a sabunta nau'ikan keɓancewa a wasu ƙa'idodi masu dacewa daidai.

source: budenet.ru

Add a comment