学习使用 数据交换 Delphi 与 Python 传值【2】
Delphi 向 Python 传递变量
procedure TForm1.PassValuesToPython; var PyValue: PPyObject; // Python 对象指针 begin PythonEngine1.LoadDll; // 【第1段】创建 Python 整数 PyValue := PythonEngine1.PyLong_FromLong(42); // 【第2段】将变量注入 Python 全局命名空间 PythonEngine1.PyDict_SetItemString( PythonEngine1.GetMainModule.__dict__, 'delphi_number', PyValue ); // 【第3段】在 Python 中使用这个变量 PythonEngine1.ExecString('print(f"Delphi传来的数字: {delphi_number}")'); // 【第4段】释放 Python 对象(重要!防止内存泄漏) PythonEngine1.Py_DecRef(PyValue); end;
关键概念解释:
-
PPyObject- Python 对象的 C 指针,所有 Python 数据都是这种类型 -
PyLong_FromLong()- 将 Delphi 整数转为 Python 整数 -
GetMainModule.__dict__- Python 的全局变量字典 -
Py_DecRef()- 必须调用,减少引用计数,否则内存泄漏
浙公网安备 33010602011771号