使用Python4Delphi,将Delphi方法公开给Python,以便Python可以调用到Delphi应用程序中是相当简单的。但是,我无法将由Delphi方法创建的Python列表返回给Python。例如:
function TDelphiAPI.callMethod : PPyObject;
begin
// Create a new empty list of three elements
result := GetPythonEngine.PyList_New(3);
end;
import mylib
p = mylib.DelphiAPI()
print p.callmethod()当从Python调用时,它返回'NoneType‘。如果PPyObject被更改为integer、AnsiString或double等类型,Python会选择正确的类型并正确地显示它。我使用
GetPythonEngine.AddMethod ('callMethod', @TDelphiAPI.callMethod, 'callMmethod)');从Delphi公开该方法。但是,据我所知,没有办法为参数或返回类型指定类型。
我想知道是否有人从delphi python类型返回,如列表或甚至numpy数组?
发布于 2021-07-10 05:10:08
普通的Python数组(就像标准的CPython一样)通常被称为“列表”。Python中的numpy.array类型(或可变列表)是一种特殊类型,它比普通Py浮点对象的普通Python列表具有更高的内存和布局效率。如果你想使用Delphi访问Numpy.array或list,我想最直接的方法就是实现一种导出一些访问Numpy.array类型的简单C函数的方法。
Numpy.array包装了作为本机C数组类型访问的标准内存块。反过来,这并不能清晰地映射到由Python的Delphi方法创建的Delphi数组类型。
https://stackoverflow.com/questions/48311617
复制相似问题