Asosiy o'zgarishlar:
- C++ va Java kodlarida chiqarilgan istisnolar endi Python kodida istisno yuzaga kelganda istisnolar to'plamini taqdim etadi. Shunday qilib, istisno stek haqida ma'lumot olish uchun endi siz stacktrace() ga qo'ng'iroq qilishingiz shart emas.
- Qo'ng'iroqlarni qaytarish tezligi uch baravar oshirildi.
- Sezilarli darajada (kattalik buyurtmalari bo'yicha) uzatish tezligi oshdi
ko'p o'lchovli massivlarning numpy buferlari. Ko'p o'lchovli primitivlar JVM ichida yaratilgan faqat o'qish uchun mo'ljallangan nusxalarni qo'shni C tartibi bilan o'tkazadi. - Barcha ochiq ichki qismlar CPython ilovalari va __javaclass__, __javavalue__ va __javaproxy__ belgilari bilan almashtirildi.
o'chirildi. Jpype sinf turlaridan meros bo'lib qolgan barcha CPython turlariga maxsus Java uyasi qo'shildi. Barcha shaxsiy jadvallar CPython-ga ko'chirildi. Java turlari endi JClass metasinfidan meros bo'lishi kerak, u tip slotlaridan foydalanadi. Python asosiy sinflari uchun miksinlarga ruxsat berilmaydi. Turlar Ob'ekt, Proksi, Istisno, Raqam va Massiv bo'lib, to'g'ridan-to'g'ri CPython ichki ilovalaridan meros bo'lib qoladi. - Yaxshilangan kuzatuv va istisnolardan foydalanish.
- Endi massiv boʻlaklari asl nusxaga yozishni qoʻllab-quvvatlaydigan koʻrinishlar sifatida qayta ishlanadi, masalan, numpy massiv. Massivlarni kesish uchun qiymatlarni qadamlar (bo'lim (boshlash, to'xtatish, qadam)) o'rnatish va olish uchun yordam taqdim etiladi.
- Endi massivlar "__reversed__" ni qo'llab-quvvatlaydi.
- Java massivlari endi xotira ko'rish API-ni qo'llab-quvvatlaydi va bufer tarkibini o'tkazish uchun numpy-ga bog'liqlikni olib tashlaydi.
- Numpy endi bog'liqlik emas (qo'shimcha) va numpy-ga xotirani numpy yordami bilan kompilyatsiya qilmasdan o'tkazish mumkin.
- JInterface meta-sinf sifatida yaratilgan. Interfeyslarni tekshirish uchun isinstance (cls, JInterface) dan foydalaning.
- Standart importlarga etishmayotgan TLD "mil", "net" va "edu" qo'shildi.
- Ishga tushirish vaqtida UnsupportedClassVersion uchun yaxshilangan xato xabarlari.
- Agar element topilmasa, java.util.Map endi KeyError beradi. Null bo'lgan qiymatlar kutilganidek hech birini qaytarmaydi. Bo'sh kalitlarni Yo'q deb hisoblamoqchi bo'lsangiz get() dan foydalaning.
- Java.util.Collection o'chirildi, chunki u Ro'yxatlardagi remove(Object) va remove(int) o'rtasida g'alati darajada haddan tashqari yuklanadi. Mahalliy Java xatti-harakatiga kirish uchun Java remove() usulidan foydalaning, ammo ortiqcha yukni boshqarish uchun turdagi translatsiya tavsiya etiladi.
- java.lang.IndexOutOfBoundsException endi java.util.List elementlariga kirishda IndexError istisno klassi yordamida ushlanishi mumkin.
Manba: opennet.ru