2013-10-14 78 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