0

我编写了一些 Python 函数来将简单的空间数据(如点、多边形、三角曲面)读入/从 Python 中的简单数据结构中读取/写入。我知道有一些可能性可以从C或 C++ 访问这些数据结构,就像在这篇文章中一样: Passing Python list to C++ vector using Boost.python

但是,我不是使用模板的经验丰富的程序员,我想先从一种简单的方法开始——如果它存在的话。因此,如果我有一个点对象列表(参见简单的类定义),我将如何从读取相应变量的C程序访问该列表。

class point3d():

def __init__(self, objectName, version, id=[], xyz=[], prop=[], unit=[], val=[]):
    self.id = id
    self.xyz = xyz
    self.prop = prop
    self.unit = unit
    self.val = val
    dim = len(self.xyz)
    self.objectName = objectName
    self.version = version
    if dim == 1:
        self.x = self.xyz[0]
    elif dim == 2:
        self.x = self.xyz[0]
        self.y = self.xyz[1]
    elif dim == 3:
        self.x = self.xyz[0]
        self.y = self.xyz[1]
        self.z = self.xyz[2]

def __del__(self):
    pass

def getObjectName(self):
    return self.objectName

def getVersion(self):
    return self.version

def getXYZ(self):
    return self.xyz

def getDim(self):
    return self.dim

def getProp(self):
    return self.prop

def getUnit(self):
    return self.unit

def getVal(self):
    return self.val

def getId(self):
    return self.id
4

1 回答 1

1

如果你想从你的 python 程序中调用一个 C/C++ 函数,ctypes是要走的路。

于 2012-10-17T21:54:12.220 回答