当前位置: 首页 > news >正文

学习使用 数据交换 Delphi 与 Python 传值【2】

学习使用 数据交换 Delphi 与 Python 传值【2】

Delphi 向 Python 传递变量

procedure TForm1.PassValuesToPython;
varPyValue: PPyObject;  // Python 对象指针
beginPythonEngine1.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() - 必须调用,减少引用计数,否则内存泄漏