JPype 1.0 рдЪреЗ рдкреНрд░рдХрд╛рд╢рди, Python рд╡рд░реВрди Java рдХреНрд▓рд╛рд╕реЗрд╕рдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд▓рд╛рдпрдмреНрд░рд░реА

рдЙрдкрд▓рдмреНрдз рд╕реНрддрд░ рдкреНрд░рдХрд╛рд╢рди JPype 1.0, рдЬреЗ рдЬрд╛рд╡рд╛ рднрд╛рд╖реЗрддреАрд▓ рдХреНрд▓рд╛рд╕ рд▓рд╛рдпрдмреНрд░рд░реАрдордзреНрдпреЗ рдкрд╛рдпрдерди рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕рдирд╛ рдкреВрд░реНрдг рдкреНрд░рд╡реЗрд╢ рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ. рдкрд╛рдпрдердирдЪреНрдпрд╛ JPype рд╕рд╣, рддреБрдореНрд╣реА Java рдЖрдгрд┐ Python рдХреЛрдб рдПрдХрддреНрд░ рдХрд░рдгрд╛рд░реЗ рд╣рд╛рдпрдмреНрд░рд┐рдб рдЕреЕрдкреНрд▓рд┐рдХреЗрд╢рди рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА Java-рд╡рд┐рд╢рд┐рд╖реНрдЯ рд▓рд╛рдпрдмреНрд░рд░реА рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛. Jython рдЪреНрдпрд╛ рд╡рд┐рдкрд░реАрдд, Java рд╕рд╣ рдПрдХрддреНрд░реАрдХрд░рдг JVM рд╕рд╛рдареА Python рдкреНрд░рдХрд╛рд░ рддрдпрд╛рд░ рдХрд░реВрди рдирд╛рд╣реА рддрд░ рд╕рд╛рдорд╛рдпрд┐рдХ рдореЗрдорд░реА рд╡рд╛рдкрд░реВрди рджреЛрдиреНрд╣реА рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдорд╢реАрдирдЪреНрдпрд╛ рдкрд╛рддрд│реАрд╡рд░ рдкрд░рд╕реНрдкрд░рд╕рдВрд╡рд╛рджрд╛рджреНрд╡рд╛рд░реЗ рдкреНрд░рд╛рдкреНрдд рдХреЗрд▓реЗ рдЬрд╛рддреЗ. рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рджреГрд╖реНрдЯреАрдХреЛрди рдХреЗрд╡рд│ рдЪрд╛рдВрдЧрд▓реА рдХрд╛рдордЧрд┐рд░реА рд╕рд╛рдзреНрдп рдХрд░реВ рд╢рдХрдд рдирд╛рд╣реА, рддрд░ рд╕рд░реНрд╡ CPython рдЖрдгрд┐ Java рд▓рд╛рдпрдмреНрд░рд░реАрдВрдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рджреЗрдЦреАрд▓ рдкреНрд░рджрд╛рди рдХрд░рддреЗ. рдкреНрд░рдХрд▓реНрдк рдХреЛрдб рджреНрд╡рд╛рд░рд╛ рд╡рд┐рддрд░рд┐рдд Apache 2.0 рдЕрдВрддрд░реНрдЧрдд рдкрд░рд╡рд╛рдирд╛рдХреГрдд.

рдореБрдЦреНрдп рдмрджрд▓:

  • JChar рдПрдХ рд░рд┐рдЯрд░реНрди рдкреНрд░рдХрд╛рд░ рдореНрд╣рдгреВрди рд╕рдорд░реНрдерд┐рдд рдЖрд╣реЗ. рд╕реБрд╕рдВрдЧрддрддреЗрд╕рд╛рдареА, JChar "str" тАЛтАЛрд╡рд░реВрди рд╡рд╛рд░рд╕рд╛ рдШреЗрддреЛ рдЖрдгрд┐ "int" рдордзреНрдпреЗ рдЕрд╡реНрдпрдХреНрдд рд░реВрдкрд╛рдВрддрд░рдг рд▓рд╛рдЧреВ рдХрд░рддреЛ. рдореНрд╣рдгреВрди, рддреЗ рдХрд░рд╛рд░рд╛рдордзреНрдпреЗ рдзрдирд╛рджреЗрд╢ рдкрд╛рд╕ рдХрд░рддреЗ. рдкрд░рдВрддреБ рдпрд╛рдЪрд╛ рдЕрд░реНрде рдЕрд╕рд╛ рдХреА рддреЛ рдпрд╛рдкреБрдвреЗ рдкрд╛рдпрдереЙрдирдордзреНрдпреЗ рдЕрдВрдХреАрдп рдкреНрд░рдХрд╛рд░ рдорд╛рдирд▓рд╛ рдЬрд╛рдд рдирд╛рд╣реА рдЖрдгрд┐ рдореНрд╣рдгреВрди isinstance(c, int) рдЪреЗ рдореВрд▓реНрдпрдорд╛рдкрди False рд╣реЛрддреЗ, рдЬреЗ Java рдкреНрд░рдХрд╛рд░ рд░реВрдкрд╛рдВрддрд░рдг рдирд┐рдпрдорд╛рдВрд╢реА рд╕реБрд╕рдВрдЧрдд рдЖрд╣реЗ.
  • Java рдкреНрд░рдХрд╛рд░, Type@obj (@ рдЕрдВрддрд░реНрдЧрдд рдЙрддреНрдкрд╛рджрдирд╛рд╕рд╛рдареА рдкрд╛рдпрдерди рдСрдкрд░реЗрдЯрд░ рдЖрд╣реЗ; рддреЛ Java рдордзреНрдпреЗ рдЕрд╕реНрддрд┐рддреНрд╡рд╛рдд рдирд╛рд╣реА) рдПрдХ рдСрдкрд░реЗрдЯрд░ рд╕рд╛рджрд░ рдХреЗрд▓рд╛ рдЧреЗрд▓рд╛ рдЖрд╣реЗ.
  • Java рдЕреЕрд░реЗ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдиреЛрдЯреЗрд╢рди рдЬреЛрдбрд▓реЗ. рдирд┐рд╢реНрдЪрд┐рдд рдЖрдХрд╛рд░рд╛рдЪреНрдпрд╛ рдЕреЕрд░реЗрд╕рд╛рдареА [s1][s2][s3] рдЯрд╛рдЗрдк рдХрд░рд╛, рдирдВрддрд░ рддрдпрд╛рд░ рдХреЗрд▓реНрдпрд╛ рдЬрд╛рдгрд╛рд▒реНрдпрд╛ рдЕреЕрд░реЗрд╕рд╛рдареА рдЯрд╛рдЗрдк рдХрд░рд╛[:][:][:].
  • @FunctionalInterface рддреБрдореНрд╣рд╛рд▓рд╛ __call__ рд╕рд╣ рдкрд╛рдпрдерди рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕рдордзреВрди рдЬрд╛рд╡рд╛ рдлрдВрдХреНрдЯрд░ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЛ.
  • рдХрд╛рдвреВрди рдЯрд╛рдХрд▓реЗрд▓реЗ JIterator, JException рдЪрд╛ рдлреЕрдХреНрдЯрд░реА рдореНрд╣рдгреВрди рд╡рд╛рдкрд░, get_default_jvm_path рдЖрдгрд┐ jpype.reflect.
  • рдбреАрдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░, рдЬрд╛рд╡рд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдкрд╛рдпрдерди рд╕реНрдЯреНрд░рд┐рдВрдЧрдордзреНрдпреЗ рд░реВрдкрд╛рдВрддрд░рд┐рдд рд╣реЛрдд рдирд╛рд╣реАрдд.
  • Python рдиреЗ "__int__" рдирд╛рдкрд╕рдВрдд рдХреЗрд▓реЗ рдЖрд╣реЗ, рддреНрдпрд╛рдореБрд│реЗ рдкреВрд░реНрдгрд╛рдВрдХ рдЖрдгрд┐ рдлреНрд▓реЛрдЯрд┐рдВрдЧ-рдкреЙрдЗрдВрдЯ рдкреНрд░рдХрд╛рд░рд╛рдВрдордзреАрд▓ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдХрд╛рд╕реНрдЯ рдПрдХ TypeError рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрд▓.
  • JException рдЪрд╛ рд╡рд╛рдкрд░ рдирд╛рдкрд╕рдВрдд рдХрд░рдгреНрдпрд╛рдд рдЖрд▓рд╛ рдЖрд╣реЗ. рд╕рд░реНрд╡ рдЕрдкрд╡рд╛рдж рдкрдХрдбрдгреНрдпрд╛рд╕рд╛рдареА, рдХрд┐рдВрд╡рд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдЬрд╛рд╡рд╛ рдЕрдкрд╡рд╛рдж рдкреНрд░рдХрд╛рд░ рдЖрд╣реЗ рд╣реЗ рддрдкрд╛рд╕рдгреНрдпрд╛рд╕рд╛рдареА, java.lang.Throwable рд╡рд╛рдкрд░рд╛.
  • Java рдЕрдкрд╡рд╛рджрд╛рдВрдЪреА рдХреЕрд╕реНрдХреЗрдбрд┐рдВрдЧ рдХрд╛рд░рдгреЗ рдЖрддрд╛ Python рд╕реНрдЯреЕрдХ рдлреНрд░реЗрдореНрд╕рдордзреНрдпреЗ рджрд┐рд╕реВрди рдпреЗрддрд╛рдд.
  • JString рдирд╛рдкрд╕рдВрдд рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ. Java рд╕реНрдЯреНрд░рд┐рдВрдЧ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХрд┐рдВрд╡рд╛ рдПрдЦрд╛рджреА рд╡рд╕реНрддреВ Java рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рдХрд╛рд░рдЪреА рдЖрд╣реЗ рд╣реЗ рддрдкрд╛рд╕рдгреНрдпрд╛рд╕рд╛рдареА java.lang.String рд╡рд╛рдкрд░рд╛.
  • рдЬрд╛рд╡рд╛ рдХреНрд▓рд╛рд╕реЗрд╕рдордзреНрдпреЗ Repr рдкрджреНрдзрддреА рдЕрдкрдбреЗрдЯ рдХреЗрд▓реНрдпрд╛ рдЧреЗрд▓реНрдпрд╛ рдЖрд╣реЗрдд.
  • java.util.List collections.abc.Sequence рдЖрдгрд┐ collections.abc.MutableSequence рд╕рд╛рдареА рдХрд░рд╛рд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рддреЗ.
  • java.util.Collection рд╣реЗ collections.abc.Collection рд╕рд╛рдареА рдХрд░рд╛рд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рддреЗ.
  • Java рд╡рд░реНрдЧ рдЦрд╛рдЬрдЧреА рдЖрд╣реЗрдд рдЖрдгрд┐ Python рд╡рд░реВрди рд╡рд╛рдврд╡рд▓реНрдпрд╛рд╡рд░ TypeError рдЯрд╛рдХрддреАрд▓.
  • рдХрдВрдЯреНрд░реЛрд▓-рд╕реА рдХрд╛рд│рдЬреАрдкреВрд░реНрд╡рдХ рд╣рд╛рддрд╛рд│рд╛. Java рдЬреЗрд╡реНрд╣рд╛ Control-C рд╕рд┐рдЧреНрдирд▓рд╡рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рддреЗ рддреЗрд╡реНрд╣рд╛ рдорд╛рдЧреАрд▓ рдЖрд╡реГрддреНрддреНрдпрд╛ рдХреНрд░реЕрд╢ рд╣реЛрддрд╛рдд рдХрд╛рд░рдг рддреЗ рдХреЙрд▓ рджрд░рдореНрдпрд╛рди Java рдмрдВрдж рдХрд░рддреАрд▓. JPype рдЖрддрд╛ Java рд╡рд░реВрди рдкрд░рдд рдпреЗрддрд╛рдирд╛ InterruptedException рдЯрд╛рдХреЗрд▓. рд╕рдзреНрдпрд╛ рд▓рд╛рдЧреВ рдХреЗрд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗ Control-C рдореЛрдареНрдпрд╛ Java рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдмрд╛рд╣реЗрд░ рдЯрд╛рдХрдгрд╛рд░ рдирд╛рд╣реА, рдХрд╛рд░рдг Java рдХрдбреЗ рдпрд╛рд╕рд╛рдареА рд╡рд┐рд╢реЗрд╖ рд╕рд╛рдзрди рдирд╛рд╣реА.

рдкреБрдвреЗ, рд╕реБрдзрд╛рд░рд╛рддреНрдордХ рдкреНрд░рдХрд╛рд╢рди 1.0.1 рддрдпрд╛рд░ рдХреЗрд▓реЗ рдЧреЗрд▓реЗ, рдЬреНрдпрд╛рдиреЗ рдкрд╛рдпрдерди 3.8.4 рд░рд┐рд▓реАрдЭрд╕рд╣ рд╕рдорд╕реНрдпрд╛рдВрд╡рд░ рдХрд╛рдо рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдмрджрд▓ рдЬреЛрдбрд▓реЗ. рдкрд╛рдпрдердирдиреЗ "рдСрдмреНрдЬреЗрдХреНрдЯ" рдЖрдгрд┐ "рдЯрд╛рдЗрдк" рд╕рд╛рдареА "__setattr__" рдЪреНрдпрд╛ рд╡рд╛рдкрд░рд╛рдмрд╛рдмрдд рддрд░реНрдХ рдмрджрд▓рд▓рд╛ рдЖрд╣реЗ, рд╡реНрдпреБрддреНрдкрдиреНрди рд╡рд░реНрдЧ рд╕реБрдзрд╛рд░рдгреНрдпрд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рдгреНрдпрд╛рдкрд╛рд╕реВрди рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХреЗрд▓реЗ рдЖрд╣реЗ. рддреНрд░реБрдЯреА рддрдкрд╛рд╕рдгреЗ рджреЗрдЦреАрд▓ "__setattr__" рдкрджреНрдзрддреАрджреНрд╡рд╛рд░реЗ рдирд┐рдпреБрдХреНрдд рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ, рддреНрдпрд╛рдореБрд│реЗ рдХрд╛рд╣реА рдкрд░реНрдпрд╛рдкреНрддрддрд╛ рддрдкрд╛рд╕рдгреАрдордзреАрд▓ рдЕрдкрд╡рд╛рдж рдкреНрд░рдХрд╛рд░ рддреНрдпрд╛рдиреБрд╕рд╛рд░ рдЕрджреНрдпрддрдирд┐рдд рдХреЗрд▓реЗ рдЬрд╛рд╡реЗрдд.

рд╕реНрддреНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛