USEGEAR

导航

学习使用 数据交换 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() - 必须调用,减少引用计数,否则内存泄漏

posted on 2026-02-11 09:43  USEGEAR  阅读(21)  评论(0)    收藏  举报