Ngaleupaskeun JPype 1.0, perpustakaan pikeun ngakses kelas Java ti Python

Aya release lapisan jpg 1.0, anu ngamungkinkeun aplikasi Python gaduh aksés pinuh ka perpustakaan kelas dina basa Java. Kalayan JPype ti Python, anjeun tiasa nganggo perpustakaan khusus Java pikeun nyiptakeun aplikasi hibrid anu ngagabungkeun kode Java sareng Python. Teu kawas Jython, integrasi jeung Java kahontal teu ngaliwatan nyieun varian Python pikeun JVM, tapi ngaliwatan interaksi dina tingkat duanana mesin virtual ngagunakeun memori dibagikeun. Pendekatan anu diusulkeun ngamungkinkeun henteu ngan ukur pikeun ngahontal prestasi anu saé, tapi ogé nyayogikeun aksés ka sadaya perpustakaan CPython sareng Java. Kodeu proyék disebarkeun ku dilisensikeun dina Apache 2.0.

Parobahan utama:

  • JChar dirojong salaku tipe balik. Pikeun kasaluyuan, JChar inherits tina "str" ​​​​jeung nerapkeun konvérsi implisit kana "int". Ku alatan éta, éta lulus cék dina kontrak. Tapi ieu ngandung harti yén éta henteu deui dianggap tipe numerik di Python sahingga isinstance (c, int) ngaevaluasi mun Palsu, nu konsisten jeung aturan konversi tipe Java.
  • Hiji operator geus diwanohkeun ka tuang tipe Java, Type@obj (@ nyaéta operator Python pikeun produk jero; Java teu boga).
  • Ditambahkeun notasi pikeun nyieun arrays Java. Ketik [s1] [s2] [s3] pikeun arrays ukuran tetep, Tipe[:][:][:] pikeun arrays anu bakal dijieun engké.
  • @FunctionalInterface ngidinan Anjeun pikeun nyieun functors Java tina objék Python kalawan __call__.
  • Dipiceun JIterator deprecated, pamakéan JException salaku pabrik, get_default_jvm_path na jpype.reflect.
  • Sacara standar, string Java henteu dirobih kana string Python.
  • Python geus deprecated "__int__", jadi matak implisit antara integer jeung tipe floating-point bakal ngahasilkeun TypeError a.
  • Pamakéan JException geus deprecated. Pikeun nyekel sagala iwal, atawa pariksa yen hiji obyék mangrupakeun tipe iwal Java, make java.lang.Throwable.
  • Cascading ngabalukarkeun pengecualian Java ayeuna reflected dina pigura tumpukan Python.
  • JString geus deprecated. Pikeun nyieun string Java, atawa pikeun pariksa yen hiji obyék tipe string Java, make java.lang.String.
  • Métode Repr parantos diropéa dina kelas Java.
  • java.util.List ngaéksekusi kontrak pikeun collections.abc.Sequence jeung collections.abc.MutableSequence.
  • java.util.Collection ngalaksanakeun kontrak pikeun collections.abc.Collection.
  • Kelas Java swasta sareng bakal ngalungkeun TypeError nalika diperpanjang tina Python.
  • Nanganan Control-C taliti. Versi saméméhna ngadat nalika Java ngolah sinyal Control-C sabab bakal nungtungan Java nalika nelepon. JPype ayeuna bakal ngalungkeun InterruptedException nalika uih deui ti Java. Control-C moal buang kaluar prosedur Java badag salaku ayeuna dilaksanakeun, saprak Java teu boga alat husus pikeun ieu.

Salajengna, release corrective 1.0.1 dijieun, nu ditambahkeun parobahan pikeun gawé di sabudeureun masalah jeung release Python 3.8.4. Python geus robah logika ngeunaan pamakéan "__setattr__" pikeun "obyek" jeung "tipe", nyegah eta tina dipaké pikeun ngaropéa kelas diturunkeun. Kasalahan mariksa ogé geus delegated ti "__setattr__" metoda, jadi tipe iwal dina sababaraha cék kacukupan kudu diropéa sasuai.

sumber: opennet.ru

Tambahkeun komentar