JPype 0.7.2, Python වෙතින් Java පන්ති වෙත ප්‍රවේශ වීම සඳහා පුස්තකාල නිකුත් කිරීම

ඇත ස්ථරය මුදා හැරීම JPype 0.7.2, ජාවා පන්ති පුස්තකාල වෙත Python යෙදුම්වල පූර්ණ ප්‍රවේශය සංවිධානය කිරීමට ඔබට ඉඩ සලසයි. Python වෙතින් JPype සමඟින්, ඔබට Java සහ Python කේතය ඒකාබද්ධ කරන දෙමුහුන් යෙදුම් නිර්මාණය කිරීමට Java-විශේෂිත පුස්තකාල භාවිතා කළ හැක. Jython මෙන් නොව, Java සමඟ ඒකාබද්ධ වීම සාක්ෂාත් කරගනු ලබන්නේ JVM සඳහා Python ප්‍රභේදයක් නිර්මාණය කිරීමෙන් නොව, හවුල් මතකය භාවිතා කරමින් අතථ්‍ය යන්ත්‍ර දෙකෙහිම මට්ටමේ අන්තර්ක්‍රියා මගිනි. යෝජිත ප්‍රවේශය හොඳ කාර්ය සාධනයක් ලබා ගැනීමට පමණක් නොව, සියලුම CPython සහ Java පුස්තකාල වෙත ප්‍රවේශය ද ලබා දේ. ව්යාපෘති කේතය විසින් බෙදා හරිනු ලැබේ Apache 2.0 යටතේ බලපත්‍ර ලබා ඇත.

ප්රධාන වෙනස්කම්:

  • C++ සහ ජාවා කේතය තුළ ඇති ව්‍යතිරේක දැන් Python කේතයේ ව්‍යතිරේකයක් සිදු වූ විට ව්‍යතිරේක තොගයක් සපයයි. මේ අනුව, ව්‍යතිරේක තොගය පිළිබඳ තොරතුරු ලබා ගැනීම සඳහා, ඔබට තවදුරටත් stacktrace() ඇමතීමට අවශ්‍ය නොවේ.
  • ඇමතුම් ලබා දීමේ වේගය තුන් ගුණයකින් වැඩි කර ඇත.
  • සැලකිය යුතු ලෙස (විශාලත්වයේ නියෝග අනුව) සම්ප්‍රේෂණ වේගය වැඩි විය
    බහුමාන අරා වල numpy buffers. බහුමාන ප්‍රාථමිකයන් JVM තුළ නිර්මාණය කරන ලද කියවීමට පමණක් අනුබද්ධ C පිරිසැලසුමකින් පිටපත් කරයි.

  • සියලුම නිරාවරණය වූ අභ්‍යන්තරයන් CPython ක්‍රියාත්මක කිරීම් සමඟ ප්‍රතිස්ථාපනය කර ඇත, සහ __javaclass__, __javavalue__ සහ __javaproxy__ සංකේත
    මකා දමන ලදී. jpype පන්ති වර්ග වලින් උරුම වන සියලුම CPython වර්ග සඳහා කැපවූ Java slot එකක් එකතු කර ඇත. සියලුම පුද්ගලික වගු CPython වෙත ගෙන ගොස් ඇත. ජාවා වර්ග දැන් ටයිප් ස්ලොට් භාවිතා කරන JClass metaclass වෙතින් උරුම විය යුතුය. Python මූලික පන්ති සඳහා Mixins අවසර නැත. වර්ග වන්නේ Object, Proxy, Exception, Number සහ Array වන අතර CPython හි අභ්‍යන්තර ක්‍රියාත්මක කිරීම් වලින් සෘජුවම උරුම වේ.

  • වැඩි දියුණු කළ ලුහුබැඳීම සහ ව්‍යතිරේක හැසිරවීම.
  • numpy array වැනි මුල් පිටපතට නැවත ලිවීමට සහාය දක්වන දසුන් ලෙස Array පෙති දැන් සකසනු ලැබේ. අරා පෙති කැපීම සඳහා, පියවරයන් (පෙත්ත (ආරම්භය, නැවතුම්, පියවර)) අගයන් සැකසීම සහ ලබා ගැනීම සඳහා සහාය ලබා දේ.
  • Arrays දැන් "__reversed__" සඳහා සහය දක්වයි.
  • Java arrays දැන් memoryview API සඳහා සහය දක්වන අතර buffer අන්තර්ගතයන් යැවීමට numpy මත යැපීම ඉවත් කරයි.
  • Numpy තවදුරටත් පරායත්තතාවයක් (අතිරේක) නොවන අතර numpy සහය සමඟින් සම්පාදනය නොකර numpy වෙත මතක හුවමාරුව ලබා ගත හැක.
  • JInterface මෙටා පන්තියක් ලෙස නිර්මාණය කර ඇත. අතුරුමුහුණත් සඳහා පරීක්ෂා කිරීමට isinstance(cls, JInterface) භාවිතා කරන්න.
  • නැතිවූ TLDs "mil", "net" සහ "edu" පෙරනිමි ආයාත කිරීමට එක් කරන ලදී.
  • ආරම්භයේදී UnsupportedClassVersion සඳහා වැඩි දියුණු කළ දෝෂ පණිවිඩ.
  • java.util.Map දැන් මූලද්‍රව්‍යය සොයාගත නොහැකි නම් KeyError එකක් විසි කරයි. ශුන්‍ය අගයන් තවමත් බලාපොරොත්තු වූ පරිදි කිසිවක් ආපසු ලබා නොදේ. ඔබට හිස් යතුරු කිසිවක් නැත ලෙස සැලකීමට අවශ්‍ය නම් get() භාවිතා කරන්න.
  • java.util.Collection ඉවත් කර ඇත, එය ලැයිස්තු මත ඉවත් කිරීම (Object) සහ ඉවත් කිරීම (int) අතර අමුතු ලෙස අධික ලෙස පටවනු ලැබේ. ස්වදේශික ජාවා හැසිරීම් වලට ප්‍රවේශ වීමට Java remove() ක්‍රමය භාවිතා කරන්න, නමුත් අධි බර පාලනය සඳහා ටයිප් වාත්තු කිරීම දැඩි ලෙස නිර්දේශ කෙරේ.
  • java.lang.IndexOutOfBoundsException දැන් java.util.List මූලද්‍රව්‍ය වෙත පිවිසීමේදී IndexError ව්‍යතිරේක පන්තිය භාවිතයෙන් අල්ලා ගත හැක.

මූලාශ්රය: opennet.ru

අදහස් එක් කරන්න