שחרור של JPype 1.0, ספריות לגישה לשיעורי Java מ-Python

זמין שחרור בין השכבות JPype 1.0, המאפשר לך לארגן גישה מלאה של יישומי Python לספריות כיתות Java. עם JPype מ-Python, אתה יכול להשתמש בספריות ספציפיות ל-Java כדי ליצור יישומים היברידיים המשלבים קוד Java ו-Python. שלא כמו Jython, אינטגרציה עם Java מושגת לא באמצעות יצירת וריאנט של Python עבור ה-JVM, אלא באמצעות אינטראקציה ברמת שתי המכונות הוירטואליות המשתמשות בזיכרון משותף. הגישה המוצעת מאפשרת לא רק להשיג ביצועים טובים, אלא גם מספקת גישה לכל ספריות CPython ו-Java. קוד פרויקט מופץ על ידי מורשה תחת Apache 2.0.

שינויים עיקריים:

  • JChar נתמך כסוג החזרה. לצורך תאימות, JChar יורש מ-"str" ​​ומיישם המרה מרומזת ל-"int". לכן, הוא עובר בדיקות חוזה. עם זאת, משמעות הדבר היא שהוא כבר לא נחשב לסוג מספרי בפייתון, ולכן isinstance(c, int) מוערך כ-False, דבר התואם את כללי המרת הסוגים של ג'אווה.
  • הוצג אופרטור ליציקת טיפוס של ג'אווה, Type@obj (@ הוא האופרטור של פייתון עבור מכפלה פנימית, שאינו קיים בג'אווה).
  • נוסף סימון ליצירת מערכי Java. הקלד[s1][s2][s3] עבור מערכים בגודל קבוע, הקלד[:][:][:] עבור מערכים שייווצרו בהמשך.
  • @FunctionalInterface מאפשר לך ליצור פונקטורים בג'אווה מאובייקטי פייתון באמצעות __call__.
  • הוסרו JIterator שהוצא משימוש, שימוש ב-JException כ-factory, get_default_jvm_path ו-jpype.reflect.
  • כברירת מחדל, מחרוזות Java אינן מומרות למחרוזות Python.
  • פייתון הוציאה משימוש את "__int__", כך שחילופים מרומזים בין טיפוסי מספרים שלמים ונקודה צפה יפיקו שגיאת TypeError.
  • השימוש ב-JException הוצא משימוש. כדי לתפוס את כל החריגים או לבדוק שאובייקט הוא מסוג חריג Java, השתמש ב-java.lang.Throwable.
  • סיבות מדורגות לחריגות Java משתקפות כעת במסגרות המחסנית של Python.
  • השימוש ב-JString הוצא משימוש. כדי ליצור מחרוזת Java או לבדוק שאובייקט הוא מסוג Java string, השתמש ב-java.lang.String.
  • מתודות Repr עודכנו בכיתות Java.
  • הפונקציה java.util.List ממלאת את החוזים עבור collections.abc.Sequence ו- collections.abc.MutableSequence.
  • java.util.Collection ממלא את החוזה עבור collections.abc.Collection.
  • מחלקות ג'אווה הן פרטיות ויזרקו שגיאת TypeError כאשר הן מורחבות מפייתון.
  • הטיפול ב-Control-C מדויק כעת. גרסאות קודמות קרסו כאשר Java טיפלה באות Control-C, מכיוון שהן היו מפסיקות את Java במהלך הקריאה. כעת, JPype יזרוק InterruptedException בעת חזרה מ-Java. Control-C לא יזרוק מפרוצדורות Java גדולות, כפי שמיושם כעת, מכיוון של-Java אין מנגנון מיוחד לכך.

הגרסה הבאה, 1.0.1, הייתה תיקון, שכלל שינויים לטיפול בבעיות בפייתון 3.8.4. פייתון שינתה את הלוגיקה לשימוש ב-"__setattr__" עבור "object" ו-"type", ומנעה את השימוש בו לשינוי מחלקות נגזרות. בדיקת שגיאות הוענקה גם היא משיטת "__setattr__", כך שהיה צורך לעדכן בהתאם סוגי חריגים בבדיקות שפיות מסוימות.

מקור: OpenNet.ru

קנה אירוח אמין לאתרים עם הגנת DDoS, שרתי VPS VDS 🔥 קנה אחסון אתרים אמין עם הגנת DDoS, שרתי VPS VDS | ProHoster