ИзданиС JPype 0.7.2, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π·Π° Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ Java класовС ΠΎΡ‚ Python

Π”ΠΎΡΡ‚ΡŠΠΏΠ΅Π½ Ρ€Π΅Π»ΠΈΠ· Π½Π° слоя JPype 0.7.2, ΠΊΠΎΠ΅Ρ‚ΠΎ позволява Π½Π° Python прилоТСнията Π΄Π° ΠΈΠΌΠ°Ρ‚ пълСн Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈΡ‚Π΅ ΠΎΡ‚ класовС Π½Π° Java. Π‘ JPype ΠΎΡ‚ Python ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ спСцифични Π·Π° Java Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, създавайки Ρ…ΠΈΠ±Ρ€ΠΈΠ΄Π½ΠΈ прилоТСния, ΠΊΠΎΠΈΡ‚ΠΎ ΡΡŠΡ‡Π΅Ρ‚Π°Π²Π°Ρ‚ ΠΊΠΎΠ΄ Π½Π° Java ΠΈ Python. Π—Π° Ρ€Π°Π·Π»ΠΈΠΊΠ° ΠΎΡ‚ Jython, интСграцията с Java Π½Π΅ сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° Ρ‡Ρ€Π΅Π· създаванС Π½Π° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π½Π° Python Π·Π° JVM, Π° Ρ‡Ρ€Π΅Π· взаимодСйствиС Π½Π° Π½ΠΈΠ²ΠΎ ΠΈ Π½Π° Π΄Π²Π΅Ρ‚Π΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½ΠΈ машини, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ сподСлСна ΠΏΠ°ΠΌΠ΅Ρ‚. ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡΡ‚ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ позволява Π½Π΅ само Π΄ΠΎΠ±Ρ€Π° производитСлност, Π½ΠΎ ΠΈ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ всички Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ CPython ΠΈ Java. ΠšΠΎΠ΄ΡŠΡ‚ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° разпространява Π΅ ΠΏΠΎΠ΄ лицСнзия Apache 2.0.

Основни ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ:

  • Π˜Π·ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, ΠΏΡ€Π΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ°Π½ΠΈ Π² C++ ΠΈ Java ΠΊΠΎΠ΄, сСга прСдоставят стСк Π½Π° ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΏΡ€ΠΈ възникванС Π½Π° ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π² ΠΊΠΎΠ΄Π° Π½Π° Python. По Ρ‚ΠΎΠ·ΠΈ Π½Π°Ρ‡ΠΈΠ½, Π·Π° Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ информация Π·Π° стСка Π½Π° ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΡ‚Π°, Π²Π΅Ρ‡Π΅ Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΠΈΠ·Π²ΠΈΠΊΠ²Π°Ρ‚Π΅ stacktrace().
  • Π£Π²Π΅Π»ΠΈΡ‡Π΅Π½Π° Π΅ скоростта Π½Π° Π²Ρ€ΡŠΡ‰Π°Π½Π΅ ΠΏΡ€ΠΈ повикванията Ρ‚Ρ€ΠΈ ΠΏΡŠΡ‚ΠΈ.
  • Π‘ΡŠΡ‰Π΅ΡΡ‚Π²Π΅Π½ΠΎ (ΠΌΠ½ΠΎΠ³ΠΎ) Π΅ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½Π° скоростта Π½Π° ΠΏΡ€Π΅Π΄Π°Π²Π°Π½Π΅ Π²
    numpy Π±ΡƒΡ„Π΅Ρ€ΠΈΡ‚Π΅ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½ΠΈ масиви. ΠœΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²ΠΈ ΠΏΡ€Π΅Π΄Π°Π²Π°Ρ‚ само Π·Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅ копия, създадСни Π²ΡŠΡ‚Ρ€Π΅ Π² JVM с Π½Π΅ΠΏΡ€Π΅ΠΊΡŠΡΠ½Π°Ρ‚Π° ΠΏΠΎΠ΄Ρ€Π΅Π΄Π±Π° C.
  • Всички Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ сС прСдоставят, са Π·Π°ΠΌΠ΅Π½Π΅Π½ΠΈ с Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΎΡ‚ CPython, Π° символитС __javaclass__, __javavalue__ ΠΈ __javaproxy__
    са ΠΏΡ€Π΅ΠΌΠ°Ρ…Π½Π°Ρ‚ΠΈ. На всички Ρ‚ΠΈΠΏΠΎΠ²Π΅ CPython, наслСдСни ΠΎΡ‚ Ρ‚ΠΈΠΏΠΎΠ²Π΅Ρ‚Π΅ клас jpype, Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ ΠΎΡ‚Π΄Π΅Π»Π΅Π½ Java слот. Всички частни Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ са прСмСстСни Π² CPython. Java Ρ‚ΠΈΠΏΠΎΠ²Π΅ сСга трябва Π΄Π° наслСдяват ΠΎΡ‚ мСтакласата JClass, ΠΊΠΎΠΉΡ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° слотовС Ρ‚ΠΈΠΏΠΎΠ²Π΅. БмСсванията Π·Π° основнитС класовС Π½Π° Python Π½Π΅ сС допускат. Π’ΠΈΠΏΠΎΠ²Π΅Ρ‚Π΅ Object, Proxy, Exception, Number ΠΈ Array сС наслСдяват Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ ΠΎΡ‚ Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½ΠΈΡ‚Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° CPython.
  • ΠŸΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½ Π΅ Ρ‚Ρ€Π°ΡΠΈΠ½Π³ΡŠΡ‚ ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ.
  • Π‘Ρ€Π΅Π·ΠΈΡ‚Π΅ Π½Π° масиви (Array slices) сСга сС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π°Ρ‚ ΠΊΠ°Ρ‚ΠΎ прСдставя, ΠΊΠΎΠΈΡ‚ΠΎ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‚ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ записванС Π² ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»Π°, ΠΊΠ°Ρ‚ΠΎ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ масив numpy. Π—Π° срСзитС Π½Π° масиви Π΅ осигурСна ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° Π·Π°Π΄Π°Π²Π°Π½Π΅ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Π½Π΅ Π½Π° стойности с ΠΊΡ€Π°Ρ‡ΠΊΠ° (slice(start, stop, step)).
  • Π’ масивитС Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° β€ž__reversed__”.
  • Π’ Java масивитС Π΅ осигурСна ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° API memoryview ΠΈ Π΅ ΠΏΡ€Π΅ΠΌΠ°Ρ…Π½Π°Ρ‚Π° зависимостта ΠΎΡ‚ numpy Π·Π° ΠΏΡ€Π΅Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π±ΡƒΡ„Π΅Ρ€Π°.
  • Numpy Π²Π΅Ρ‡Π΅ Π½Π΅ Π΅ зависимост (extra) ΠΈ ΠΏΡ€Π΅Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚ Π² numpy Π΅ Π½Π°Π»ΠΈΡ‡Π½ΠΎ Π±Π΅Π· ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½Π΅ с ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° numpy.
  • JInterface Π΅ ΠΎΡ„ΠΎΡ€ΠΌΠ΅Π½ ΠΊΠ°Ρ‚ΠΎ ΠΌΠ΅Ρ‚Π°-клас. Π˜Π·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ isinstance(cls, JInterface) Π·Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° интСрфСйситС.
  • Π’ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈ ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ са Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ пропуснатитС TLD β€žmil”, β€žnet” ΠΈ β€žedu”.
  • По Π²Ρ€Π΅ΠΌΠ΅ Π½Π° стартиранС са ΠΏΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½ΠΈ ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡΡ‚Π° Π·Π° Π³Ρ€Π΅ΡˆΠΊΠΈ Π·Π° UnsupportedClassVersion.
  • java.util.Map сСга ΠΈΠ·Π΄Π°Π²Π° KeyError, Π°ΠΊΠΎ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΡŠΡ‚ Π½Π΅ бъдС Π½Π°ΠΌΠ΅Ρ€Π΅Π½. БтойноститС, ΠΊΠΎΠΈΡ‚ΠΎ са null, всС ΠΎΡ‰Π΅ Π²Ρ€ΡŠΡ‰Π°Ρ‚ None, ΠΊΠ°ΠΊΡ‚ΠΎ сС ΠΎΡ‡Π°ΠΊΠ²Π°. Π˜Π·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ get(), Π°ΠΊΠΎ ΠΏΡ€Π°Π·Π½ΠΈΡ‚Π΅ ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅ трябва Π΄Π° сС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π°Ρ‚ ΠΊΠ°Ρ‚ΠΎ None.
  • ΠŸΡ€Π΅ΠΌΠ°Ρ…Π½Π°Ρ‚ Π΅ java.util.Collection, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ сС ΠΏΡ€Π΅Ρ‚ΠΎΠ²Π°Ρ€Π²Π° странно ΠΌΠ΅ΠΆΠ΄Ρƒ remove(Object) ΠΈ remove(int) Π½Π° ΡΠΏΠΈΡΡŠΡ†ΠΈ. Π˜Π·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ Java ΠΌΠ΅Ρ‚ΠΎΠ΄Π° remove() Π·Π° Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»Π½ΠΎΡ‚ΠΎ Java ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, Π½ΠΎ типизацията Π΅ строго ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡ΠΈΡ‚Π΅Π»Π½Π° Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΡ€Π΅Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ.
  • java.lang.IndexOutOfBoundsException ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΡƒΠ»ΠΎΠ²Π΅Π½ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° класа Π·Π° ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ IndexError ΠΏΡ€ΠΈ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ‚Π΅ Π½Π° java.util.List.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster