JPype 0.7.2 เจฆเฉ€ เจฐเจฟเจฒเฉ€เจœเจผ, เจชเจพเจˆเจฅเจจ เจคเฉ‹เจ‚ เจœเจพเจตเจพ เจ•เจฒเจพเจธเจพเจ‚ เจจเฉ‚เฉฐ เจเจ•เจธเฉˆเจธ เจ•เจฐเจจ เจฒเจˆ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€เจ†เจ‚

เจ‰เจชเจฒเฉฑเจฌเจง เจชเจฐเจค เจฐเฉ€เจฒเฉ€เจœเจผ JPype 0.7.2, เจœเฉ‹ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจœเจพเจตเจพ เจ•เจฒเจพเจธ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€เจ†เจ‚ เจฒเจˆ เจชเจพเจˆเจฅเจจ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚ เจฆเฉ€ เจชเฉ‚เจฐเฉ€ เจชเจนเฉเฉฐเจš เจฆเจพ เจชเฉเจฐเจฌเฉฐเจง เจ•เจฐเจจ เจฆเฉ€ เจ‡เจœเจพเจœเจผเจค เจฆเจฟเฉฐเจฆเจพ เจนเฉˆเฅค Python เจคเฉ‹เจ‚ JPype เจฆเฉ‡ เจจเจพเจฒ, เจคเฉเจธเฉ€เจ‚ เจนเจพเจˆเจฌเฉเจฐเจฟเจก เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ Java-เจตเจฟเจธเจผเฉ‡เจธเจผ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€เจ†เจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจœเฉ‹ Java เจ…เจคเฉ‡ Python เจ•เฉ‹เจก เจจเฉ‚เฉฐ เจœเฉ‹เฉœเจฆเฉ€เจ†เจ‚ เจนเจจเฅค เจœเจพเจ‡เจฅเจจ เจฆเฉ‡ เจ‰เจฒเจŸ, เจœเจพเจตเจพ เจจเจพเจฒ เจเจ•เฉ€เจ•เจฐเจฃ JVM เจฒเจˆ เจชเจพเจˆเจฅเจจ เจตเฉ‡เจฐเฉ€เจเจ‚เจŸ เจฆเฉ€ เจธเจฟเจฐเจœเจฃเจพ เจฆเฉเจ†เจฐเจพ เจจเจนเฉ€เจ‚, เจชเจฐ เจธเจผเฉ‡เจ…เจฐเจก เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ เจฆเฉ‹เจตเจพเจ‚ เจตเจฐเจšเฉเจ…เจฒ เจฎเจธเจผเฉ€เจจเจพเจ‚ เจฆเฉ‡ เจชเฉฑเจงเจฐ 'เจคเฉ‡ เจชเจฐเจธเจชเจฐ เจชเฉเจฐเจญเจพเจต เจฆเฉเจ†เจฐเจพ เจชเฉเจฐเจพเจชเจค เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค เจชเฉเจฐเจธเจคเจพเจตเจฟเจค เจชเจนเฉเฉฐเจš เจจเจพ เจธเจฟเจฐเจซเจผ เจšเฉฐเจ—เฉ€ เจ•เจพเจฐเจ—เฉเจœเจผเจพเจฐเฉ€ เจจเฉ‚เฉฐ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจฆเฉ€ เจ‡เจœเจพเจœเจผเจค เจฆเจฟเฉฐเจฆเฉ€ เจนเฉˆ, เจธเจ—เฉ‹เจ‚ เจธเจพเจฐเฉ€เจ†เจ‚ CPython เจ…เจคเฉ‡ Java เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€เจ†เจ‚ เจคเฉฑเจ• เจชเจนเฉเฉฐเจš เจตเฉ€ เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเจฆเฉ€ เจนเฉˆเฅค เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจ•เฉ‹เจก เจฆเฉเจ†เจฐเจพ เจตเฉฐเจกเจฟเจ† เจ…เจชเจพเจšเฉ‡ 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) ะฝะฐ List-ะฐั…. ะ˜ัะฟะพะปัŒะทัƒะนั‚ะต Java-ะผะตั‚ะพะด remove() ะดะปั ะดะพัั‚ัƒะฟะฐ ะบ ะพั€ะธะณะธะฝะฐะปัŒะฝะพะผัƒ Java-ะฟะพะฒะตะดะตะฝะธัŽ, ะฝะพ ะฟั€ะธะฒะตะดะตะฝะธะต ั‚ะธะฟะฐ ัั‚ั€ะพะณะพ ั€ะตะบะพะผะตะฝะดัƒะตั‚ัั ะดะปั ัƒะฟั€ะฐะฒะปะตะฝะธั ะฟะตั€ะตะณั€ัƒะทะบะพะน.
  • java.lang.IndexOutOfBoundsException ั‚ะตะฟะตั€ัŒ ะผะพะถะตั‚ ะฑั‹ั‚ัŒ ะฟะพะนะผะฐะฝ ั ะฟะพะผะพั‰ัŒัŽ ะบะปะฐััะฐ ะดะปั ะธัะบะปัŽั‡ะตะฝะธะน IndexError ะฟั€ะธ ะดะพัั‚ัƒะฟะต ะบ ัะปะตะผะตะฝั‚ะฐะผ java.util.List.

เจธเจฐเฉ‹เจค: opennet.ru

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹