เบเบฒเบ™เบ›เปˆเบญเบ JPype 0.7.2, เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบซเป‰เบญเบ‡เบฎเบฝเบ™ Java เบˆเบฒเบ Python

เบกเบตเปƒเบซเป‰ เบเบฒเบ™เบ›เปˆเบญเบเบ•เบปเบง interlayer JPype 0.7.2, เป€เบŠเบดเปˆเบ‡เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบˆเบฑเบ”เบฅเบฐเบšเบฝเบšเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบขเปˆเบฒเบ‡เป€เบ•เบฑเบกเบ—เบตเปˆเบ‚เบญเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ Python เบเบฑเบšเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบซเป‰เบญเบ‡เบฎเบฝเบ™ Java. เบ”เป‰เบงเบ JPype เบˆเบฒเบ Python, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบชเบฐเป€เบžเบฒเบฐ Java เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ›เบฐเบชเบปเบกเบ—เบตเปˆเบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™เบฅเบฐเบซเบฑเบ” Java เปเบฅเบฐ Python. เบšเปเปˆเป€เบซเบกเบทเบญเบ™เบเบฑเบš Jython, เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เบเบฑเบš Java เปเบกเปˆเบ™เบšเบฑเบ™เบฅเบธเบšเปเปˆเป„เบ”เป‰เป‚เบ”เบเบœเปˆเบฒเบ™เบเบฒเบ™เบชเป‰เบฒเบ‡เบ•เบปเบงเปเบ› Python เบชเปเบฒเบฅเบฑเบš JVM, เปเบ•เปˆเป‚เบ”เบเบœเปˆเบฒเบ™เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเปƒเบ™เบฅเบฐเบ”เบฑเบšเบ‚เบญเบ‡เบ—เบฑเบ‡เบชเบญเบ‡เป€เบ„เบทเปˆเบญเบ‡ virtual เป‚เบ”เบเปƒเบŠเป‰เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบฎเปˆเบงเบกเบเบฑเบ™. เบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเบชเบฐเป€เบซเบ™เบตเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบšเปเปˆเบžเบฝเบ‡เปเบ•เปˆเบšเบฑเบ™เบฅเบธเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบตเปˆเบ”เบต, เปเบ•เปˆเบเบฑเบ‡เปƒเบซเป‰เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” CPython เปเบฅเบฐ Java เบ—เบฑเบ‡เบซเบกเบปเบ”. เบฅเบฐเบซเบฑเบ”เป‚เบ„เบ‡เบเบฒเบ™ เปเบˆเบเบขเบฒเบเป‚เบ”เบ เบญเบฐเบ™เบธเบเบฒเบ”เบžเบฒเบเปƒเบ•เป‰ Apache 2.0.

เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ•เบปเป‰เบ™เบ•เป:

  • เบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™เบ—เบตเปˆเบ–เบทเบเบ–เบดเป‰เบกเป„เบงเป‰เปƒเบ™เบฅเบฐเบซเบฑเบ” C ++ เปเบฅเบฐ Java เบ•เบญเบ™เบ™เบตเป‰เปƒเบซเป‰เบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™เป€เบกเบทเปˆเบญเบกเบตเบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™เป€เบเบตเบ”เบ‚เบทเป‰เบ™เปƒเบ™เบฅเบฐเบซเบฑเบ” Python. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เป€เบžเบทเปˆเบญเปƒเบซเป‰เป„เบ”เป‰เบฎเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบš stack เบเบฒเบ™เบเบปเบเป€เบงเบฑเป‰เบ™, เบ—เปˆเบฒเบ™เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป‚เบ—เบซเบฒ stacktrace().
  • เบ„เบงเบฒเบกเป„เบงเบเบฑเบšเบ„เบทเบ™เบเบฒเบ™เป‚เบ—เป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™เบชเบฒเบกเป€เบ—เบปเปˆเบฒ.
  • เบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบ (เป‚เบ”เบเบ„เปเบฒเบชเบฑเปˆเบ‡เบ‚เบญเบ‡เบ‚เบฐเบซเบ™เบฒเบ”) เบ„เบงเบฒเบกเป„เบงเบฅเบฐเบšเบปเบšเบชเบฒเบเบชเบปเปˆเบ‡เป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™เปƒเบ™
    เบˆเปเบฒเบ™เบงเบ™ buffers เบ‚เบญเบ‡เบญเบฒเป€เบฃเบซเบผเบฒเบเบกเบดเบ•เบดเบกเบดเบ•เบด. primitives Multidimensional เบœเปˆเบฒเบ™เบชเปเบฒเป€เบ™เบปเบฒเบญเปˆเบฒเบ™เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบžเบฒเบเปƒเบ™ JVM เบ”เป‰เบงเบเบฎเบนเบšเปเบšเบš C เบ—เบตเปˆเบ•เบดเบ”เบเบฑเบ™.

  • เบžเบฒเบเปƒเบ™เบ—เบตเปˆเป€เบ›เบตเบ”เป€เบœเบตเบเบ—เบฑเบ‡เปเบปเบ”เป„เบ”เป‰เบ–เบทเบเปเบ—เบ™เบ—เบตเปˆเบ”เป‰เบงเบเบเบฒเบ™เบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบ›เบฐเบ•เบดเบšเบฑเบ” CPython, เปเบฅเบฐเบชเบฑเบ™เบเบฒเบฅเบฑเบ __javaclass__, __javavalue__ เปเบฅเบฐ __javaproxy__
    เบฅเบถเบšเปเบฅเป‰เบง. เบชเบฐเบฅเบฑเบญเบ”เบ•เบดเบ‡ Java เบ—เบตเปˆเบญเบธเบ—เบดเบ”เบ•เบปเบ™เป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบกเปƒเบชเปˆเบ—เบธเบเบ›เบฐเป€เบžเบ” CPython เบ—เบตเปˆเบชเบทเบšเบ—เบญเบ”เบกเบฒเบˆเบฒเบเบ›เบฐเป€เบžเบ”เบซเป‰เบญเบ‡เบฎเบฝเบ™ jpype. เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบชเปˆเบงเบ™เบ•เบปเบงเบ—เบฑเบ‡เปเบปเบ”เป„เบ”เป‰เบ–เบทเบเบเป‰เบฒเบเป„เบ› CPython เปเบฅเป‰เบง. เบ›เบฐเป€เบžเบ” Java เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบชเบทเบšเบ—เบญเบ”เบกเบฒเบˆเบฒเบ JClass metaclass, เป€เบŠเบดเปˆเบ‡เปƒเบŠเป‰เบŠเปˆเบญเบ‡เบ›เบฐเป€เบžเบ”. เบšเปเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เปƒเบŠเป‰ Mixins เบชเปเบฒเบฅเบฑเบšเบซเป‰เบญเบ‡เบฎเบฝเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™ Python. เบ›เบฐเป€เบžเบ”เปเบกเปˆเบ™ Object, Proxy, Exception, Number เปเบฅเบฐ Array เปเบฅเบฐเบชเบทเบšเบ—เบญเบ”เป‚เบ”เบเบเบปเบ‡เบˆเบฒเบเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบžเบฒเบเปƒเบ™เบ‚เบญเบ‡ CPython.

  • เบ›เบฑเบšเบ›เบธเบ‡เบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบก เปเบฅเบฐเบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™เบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™.
  • เบ•เบญเบ™เบ™เบตเป‰เบŠเบดเป‰เบ™เบชเปˆเบงเบ™เบญเบฒเป€เบฃเบ–เบทเบเบ›เบฐเบกเบงเบ™เบœเบปเบ™เป€เบ›เบฑเบ™เบกเบธเบกเป€เบšเบดเปˆเบ‡เบ—เบตเปˆเบฎเบญเบ‡เบฎเบฑเบšเบเบฒเบ™เบ‚เบฝเบ™เบเบฑเบšเบ„เบทเบ™เป„เบ›เบซเบฒเบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบšเป€เบŠเบฑเปˆเบ™: array numpy. เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ slicing array, เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เปเบกเปˆเบ™เบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเปเบฅเบฐเบเบฒเบ™เบ”เบถเบ‡เบกเบนเบ™เบ„เปˆเบฒเปƒเบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™ (slice (เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เบขเบธเบ”, เบ‚เบฑเป‰เบ™เบ•เบญเบ™)).
  • เบ”เบฝเบงเบ™เบตเป‰ Arrays เบฎเบญเบ‡เบฎเบฑเบš "__reversed__".
  • เบ”เบฝเบงเบ™เบตเป‰ Java arrays เบฎเบญเบ‡เบฎเบฑเบš memoryview API เปเบฅเบฐเป€เบญเบปเบฒเบเบฒเบ™เป€เบžเบดเปˆเบ‡เบžเบฒเบญเบฒเป„เบช numpy เป€เบžเบทเปˆเบญเบœเปˆเบฒเบ™เป€เบ™เบทเป‰เบญเปƒเบ™ buffer.
  • Numpy เบšเปเปˆเปเบกเปˆเบ™เบเบฒเบ™เป€เบžเบดเปˆเบ‡เบžเบฒเบญเบฒเป„เบช (เบžเบดเป€เบชเบ”) เบญเบตเบเบ•เปเปˆเป„เบ› เปเบฅเบฐเบเบฒเบ™เป‚เบญเบ™เบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเบณเป„เบ›เบซเบฒ numpy เปเบกเปˆเบ™เบกเบตเบขเบนเปˆเป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบ‚เปเป‰เบกเบนเบ™เบ”เป‰เบงเบเบเบฒเบ™เบŠเปˆเบงเบเป€เบซเบผเบทเบญ numpy.
  • JInterface เบ–เบทเบเบญเบญเบเปเบšเบšเป€เบ›เบฑเบ™เบŠเบฑเป‰เบ™ meta. เปƒเบŠเป‰ isinstance(cls, JInterface) เป€เบžเบทเปˆเบญเบเบงเบ”เบชเบญเบšเบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš.
  • เป€เบžเบตเปˆเบก TLDs เบ—เบตเปˆเบ‚เบฒเบ”เบซเบฒเบเป„เบ› "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

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™