للقيام بإستدعاء دالة بالبايثون داخل برنامج جافا، يمكنك استخدام الواجهة PythonInterpreter
المتوفرة في مكتبة Jython. هذه المكتبة تمكنك من تشغيل أكواد البايثون داخل برنامج جافا. هناك عدة خطوات يجب اتباعها لاستدعاء الدالة الموجودة في الشيفرة البايثونية الخاصة بك:
- قم بتثبيت مكتبة Jython في مشروعك في جافا. يمكنك القيام بذلك من خلال إضافة تبعية Maven إلى ملف
pom.xml
الخاص بمشروعك.
xml<dependency>
<groupId>org.pythongroupId>
<artifactId>jython-standaloneartifactId>
<version>2.7.2version>
dependency>
- استيراد الحزم اللازمة في برنامجك في جافا.
javaimport org.python.core.PyObject;
import org.python.util.PythonInterpreter;
- إنشاء مثيل ل
PythonInterpreter
واستدعاء الدالة من الشيفرة البايثونية الخاصة بك.
javapublic 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. إليك مزيدًا من المعلومات:
- تحميل الدالة واستدعاؤها: بعد استيراد الحزم اللازمة، يمكنك تحميل الدالة من الشيفرة البايثونية الخاصة بك واستدعائها كالتالي:
javapublic 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 كمعلمة.
- معالجة النتائج: يمكنك استخدام
PyObject
للتعامل مع القيم المُرجعة من الدالة بالبايثون. على سبيل المثال، إذا كانت الدالة تقوم بإرجاع قيمة، يمكنك الحصول عليها كما يلي:
javaPyObject result = myPythonInstance.invoke("table", 5);
int intValue = result.asInt();
هذه الطريقة تسمح لك بتفاعل برنامج جافا مع دوال البايثون بسهولة. إذا كانت لديك أي أسئلة أخرى، فلا تتردد في طرحها!