2013-10-14 53 views
1

我正在编写一些工作,似乎Python提供的一些C API函数不起作用。我想主要是检查类型,例如功能:缺少python 3 API函数

import ctypes 
python33_dll = ctypes.CDLL('python33.dll') 
a_float = python33_dll.PyFloat_FromDouble(ctypes.c_float(2.0)) 
python33_dll.PyFloat_Check(a_float) 
Traceback (most recent call last): 
    File "<pyshell#6>", line 1, in <module> 
    python33_dll.PyFloat_Check(a_float) 
    File "C:\Python33\lib\ctypes\__init__.py", line 366, in __getattr__ 
    func = self.__getitem__(name) 
    File "C:\Python33\lib\ctypes\__init__.py", line 371, in __getitem__ 
    func = self._FuncPtr((name_or_ordinal, self)) 
AttributeError: function 'PyFloat_Check' not found 

有没有什么具体的我需要做的,使用此功能,或者是一个错误吗?

docs.python.org/3.3/c-api/float.html?highlight=double#PyFloat_Check

回答

1

PyFloat_Check()a macro。您需要手动扩展并改为调用正确的函数。

+0

你能给我任何其他提示如何做到这一点? – Mac

+0

你读过宏吗? –

+0

我真的不知道C的多少。我希望这是一个功能。无论如何,如果我调用PyObject_TypeCheck它说它也没有找到。 – Mac