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

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

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

  • JChar ප්‍රතිලාභ වර්ගයක් ලෙස සහය දක්වයි. ගැළපුම සඳහා, JChar "str" ​​වෙතින් උරුම වන අතර "int" වෙත ව්‍යංග පරිවර්තනයක් ක්‍රියාත්මක කරයි. එබැවින්, එය ගිවිසුම් වල චෙක්පත් සමත් වේ. නමුත් මෙයින් අදහස් කරන්නේ එය තවදුරටත් Python හි සංඛ්‍යාත්මක වර්ගයක් ලෙස නොසලකන අතර එම නිසා isinstance(c, int) ජාවා ආකාරයේ පරිවර්තන රීති වලට අනුකූල වන False ලෙස ඇගයීමට ලක් කරන බවයි.
  • ජාවා වර්ගයක් වාත්තු කිරීමට ක්‍රියාකරුවෙකු හඳුන්වා දී ඇත, Type@obj (@ යනු අභ්‍යන්තර නිෂ්පාදන සඳහා පයිතන් ක්‍රියාකරවන්නකි; ජාවා සතුව එකක් නොමැත).
  • ජාවා අරා සෑදීම සඳහා අංකනය එකතු කරන ලදී. ස්ථාවර ප්‍රමාණයේ අරා සඳහා [s1][s2][s3] ටයිප් කරන්න, පසුව සාදනු ලබන අරා සඳහා ටයිප් කරන්න[:][:][:].
  • @FunctionalInterface ඔබට __call__ සමඟ පයිතන් වස්තු වලින් ජාවා ශ්‍රිත නිර්මාණය කිරීමට ඉඩ සලසයි.
  • ඉවත් කරන ලද JIterator, කර්මාන්ත ශාලාවක් ලෙස JException භාවිතය, get_default_jvm_path සහ jpype.reflect.
  • පෙරනිමියෙන්, ජාවා නූල් පයිතන් නූල් බවට පරිවර්තනය නොවේ.
  • Python විසින් "__int__" ඉවත් කර ඇත, එබැවින් පූර්ණ සංඛ්‍යා සහ පාවෙන-ලක්ෂ්‍ය වර්ග අතර ව්‍යංග වාත්තු TypeError නිපදවනු ඇත.
  • JException භාවිතය තහනම් කර ඇත. සියලුම ව්‍යතිරේක අල්ලා ගැනීමට හෝ වස්තුවක් ජාවා ව්‍යතිරේක වර්ගයක් දැයි පරීක්ෂා කිරීමට, java.lang.Throwable භාවිතා කරන්න.
  • ජාවා ව්‍යතිරේකවල කැස්කැඩින් හේතූන් දැන් පයිතන් ස්ටැක් රාමු තුළ පිළිබිඹු වේ.
  • JString අවලංගු කර ඇත. Java තන්තුවක් සෑදීමට හෝ වස්තුවක් Java string වර්ගයේ දැයි පරීක්ෂා කිරීමට java.lang.String භාවිතා කරන්න.
  • ජාවා පන්ති වල Repr ක්‍රම යාවත්කාලීන කර ඇත.
  • java.util.List collections.abc.Sequence සහ collections.abc.MutableSequence සඳහා ගිවිසුම් ක්‍රියාත්මක කරයි.
  • java.util.Collection එකතු කිරීම්.abc.Collection සඳහා වන කොන්ත්‍රාත්තුව ක්‍රියාත්මක කරයි.
  • ජාවා පන්ති පුද්ගලික වන අතර Python වෙතින් දිගු කළ විට TypeError දමනු ඇත.
  • Control-C පරිස්සමෙන් හසුරුවන්න. Java Control-C සංඥාවක් සකසන විට පෙර අනුවාද බිඳ වැටේ, මන්ද ඒවා ඇමතුම අතරතුර ජාවා අවසන් කරන බැවිනි. JPype දැන් Java වෙතින් ආපසු එන විට InterruptedException එකක් දමනු ඇත. Control-C දැනට ක්‍රියාත්මක වන පරිදි විශාල ජාවා ක්‍රියා පටිපාටි ඉවත නොදමනු ඇත, මන්ද ජාවා සතුව මේ සඳහා විශේෂ මෙවලමක් නොමැත.

ඊළඟට, නිවැරදි කිරීමේ නිකුතුවක් 1.0.1 නිර්මාණය කරන ලදී, එය Python 3.8.4 නිකුතුව සමඟ ඇති ගැටළු විසඳීම සඳහා වෙනස්කම් එකතු කරන ලදී. Python විසින් "වස්තුව" සහ "වර්ගය" සඳහා "__setattr__" භාවිතය සම්බන්ධයෙන් තර්කනය වෙනස් කර ඇත, එය ව්‍යුත්පන්න පන්ති වෙනස් කිරීමට භාවිතා කිරීම වළක්වයි. දෝෂ පිරික්සීම "__setattr__" ක්‍රමයෙන් ද පවරා ඇත, එබැවින් සමහර ප්‍රමාණාත්මක චෙක්පත් වල ව්‍යතිරේක වර්ග ඒ අනුව යාවත්කාලීන කළ යුතුය.

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

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