البرمجة

كيفية استدعاء دالة Python في Java

للقيام بإستدعاء دالة بالبايثون داخل برنامج جافا، يمكنك استخدام الواجهة PythonInterpreter المتوفرة في مكتبة Jython. هذه المكتبة تمكنك من تشغيل أكواد البايثون داخل برنامج جافا. هناك عدة خطوات يجب اتباعها لاستدعاء الدالة الموجودة في الشيفرة البايثونية الخاصة بك:

  1. قم بتثبيت مكتبة Jython في مشروعك في جافا. يمكنك القيام بذلك من خلال إضافة تبعية Maven إلى ملف pom.xml الخاص بمشروعك.
xml
<dependency> <groupId>org.pythongroupId> <artifactId>jython-standaloneartifactId> <version>2.7.2version> dependency>
  1. استيراد الحزم اللازمة في برنامجك في جافا.
java
import org.python.core.PyObject; import org.python.util.PythonInterpreter;
  1. إنشاء مثيل لPythonInterpreter واستدعاء الدالة من الشيفرة البايثونية الخاصة بك.
java
public class Main { public static void main(String[] args) { PythonInterpreter interpreter = new PythonInterpreter(); interpreter.execfile("your_python_code.py"); PyObject myPythonClass = interpreter.get("myPythonClass"); PyObject myPythonInstance = myPythonClass.__call__(); myPythonInstance.invoke("table", 5); // Example call with parameter 5 } }

يرجى ملاحظة أن الكود المذكور يفترض وجود ملف يحتوي على الشيفرة البايثونية التي ترغب في استدعائها. يمكنك تغيير المسار في الدالة execfile ليتناسب مع مسار ملف البايثون الخاص بك.

المزيد من المعلومات

بالتأكيد! لاستدعاء دالة بالبايثون داخل برنامج جافا، يمكنك استخدام الواجهة PythonInterpreter في مكتبة Jython. إليك مزيدًا من المعلومات:

  1. تحميل الدالة واستدعاؤها: بعد استيراد الحزم اللازمة، يمكنك تحميل الدالة من الشيفرة البايثونية الخاصة بك واستدعائها كالتالي:
java
public class Main { public static void main(String[] args) { PythonInterpreter interpreter = new PythonInterpreter(); interpreter.execfile("your_python_code.py"); PyObject myPythonClass = interpreter.get("myPythonClass"); PyObject myPythonInstance = myPythonClass.__call__(); myPythonInstance.invoke("table", 5); // Example call with parameter 5 } }

هنا، interpreter.execfile("your_python_code.py"); تقوم بتحميل ملف الشيفرة البايثونية الخاص بك، و myPythonInstance.invoke("table", 5); تستدعي الدالة table مع القيمة 5 كمعلمة.

  1. معالجة النتائج: يمكنك استخدام PyObject للتعامل مع القيم المُرجعة من الدالة بالبايثون. على سبيل المثال، إذا كانت الدالة تقوم بإرجاع قيمة، يمكنك الحصول عليها كما يلي:
java
PyObject result = myPythonInstance.invoke("table", 5); int intValue = result.asInt();

هذه الطريقة تسمح لك بتفاعل برنامج جافا مع دوال البايثون بسهولة. إذا كانت لديك أي أسئلة أخرى، فلا تتردد في طرحها!

زر الذهاب إلى الأعلى