可以定制自己的类来支持c_type,这样就允许对象作为方法参数。
ctypes会寻找一个 self._as_parameter_ 属性,并且将这个属性作为方法的传入参数。当然,必须是符合C标准的。
即 intger,string或者bytes.
如果你不想存在_as_parameter_变量中。可以通过prperty来实现。
class C:
def __init__(self):
self._x = None
def getx(self):
return self._x
def setx(self, value):
self._x = value
def delx(self):
del self._x
x = property(getx, setx, delx, "I'm the 'x' property.")
或者
class Parrot:
def __init__(self):
self._voltage = 100000
@property
def voltage(self):
"""Get the current voltage."""
return self._voltage