python 的 C 语言 API 包含于向下兼容政策 PEP 387 中。C API 会跟随小版本的发布而发生变化(比如 3.9 到 3.10 的时候),不过大多数变化都是源代码级兼容的,通常只会增加新的 API。已有 API 的修改或删除,只有在废止期过后或修复严重问题时才会进行。
成都一家集口碑和实力的网站建设服务商,拥有专业的企业建站团队和靠谱的建站技术,十载企业及个人网站建设经验 ,为成都1000多家客户提供网页设计制作,网站开发,企业网站制作建设等服务,包括成都营销型网站建设,成都品牌网站建设,同时也为不同行业的客户提供网站建设、成都网站设计的服务,包括成都电商型网站制作建设,装修行业网站制作建设,传统机械行业网站建设,传统农业行业网站制作建设。在成都做网站,选网站制作建设服务商就选创新互联建站。
CPython 的应用二进制接口(ABI)可以跨小版本实现前后兼容(只要以同样方式编译;参见下面的 平台的考虑 )。因此,用 Python 3.10.0 编译的代码可以在 3.10.8 上运行,反之亦然,但针对 3.9.x 和 3.10.x 则需分别进行编译。
带下划线前缀的是私有 API,如 _Py_InternalState
,即便是补丁发布版本中也可能不加通知地进行改动。
Python 3.2 引入了 受限 API,Python 的 C API 的一个子集。 只使用受限 API 的扩展可以被一次性编译而适用于多个 Python 版本。 受限 API 的内容 如下所示。
为了实现这一点,Python 提供了一个 稳定 ABI: 一个将在各 Python 3.x 版本中保持兼容性的符号集合。 稳定 ABI 包含了在受限 API 中暴露的符号,但还包含其他符号 – 例如,支持旧版受限 API 所需的函数。
(简单起见,本文档只讨论了 扩展,但受限 API 和稳定 ABI 对于 API 的所有用法都同样适用 – 例如,嵌入 Python 等。)
Py_LIMITED_API
请在包括 Python.h
之前定义这个宏以选择只使用受限 API,并选择受限 API 的版本。
将 Py_LIMITED_API
定义为对应你的扩展所支持的最低 Python 版本的 PY_VERSION_HEX 的值。 扩展无需重编译即可适用于从指定版本开始的所有 Python 3 发布版,并可使用到该版本为止所引入的受限 API。
不直接使用 PY_VERSION_HEX
宏,而是碍编码一个最小的次要版本(例如 0x030A0000
表示 Python 3.10)以便在使用未来的 Python 版本进行编译时保持稳定。
你还可以将 Py_LIMITED_API
定义为 3
。 其效果与 0x03020000
相同(即 Python 3.2,引入受限 API 的版本)。
在 Windows 上,使用稳定 ABI 的扩展应当被链接到 Python3.dll
而不是版本专属的库如 python39.dll
。
在某些平台上,Python 将查找并载入名称中带有 abi3
标签的共享库文件 (例如 mymodule.abi3.so
)。 它不会检查这样的扩展是否兼容稳定 ABI。 使用方 (或其打包工具) 需要确保这一些,例如,基于 3.10+ 受限 API 编译的扩展不可被安装于更低版本的 Python 中。
稳定 ABI 中的所有函数都会作为 Python 的共享库中的函数存在,而不仅是作为宏。 这使得它们可以在不使用 C 预处理器的语言中使用。
受限 API 的目标是允许使用在完整 C API 中可用的任何东西,但可能会有性能上的损失。
例如,虽然 PyList_GetItem() 是可用的,但其 “不安全的” 宏版本 PyList_GET_ITEM() 则是不可用的。 这个宏的运行速度更快因为它可以利用版本专属的列表对象实现细节。
在未定义 Py_LIMITED_API
的情况下,某些 C API 函数将由宏来执行内联或替换。 定义 Py_LIMITED_API
会禁用这样的内联,允许提升 Python 的数据结构稳定性,但有可能降低性能。
通过省略 Py_LIMITED_API
定义,可以使基于版本专属的 ABI 来编译受限 API 扩展成为可能。 这能提升其在相应 Python 版本上的性能,但也将限制其兼容性。 基于 Py_LIMITED_API
进行编译将产生一个可在版本专属扩展不可用的场合分发的扩展 – 例如,针对即将发布的 Python 版本的预发布包。
请注意基于 Py_LIMITED_API
进行编译 不能 完全保证代码兼容受限 API 或稳定 ABI。 Py_LIMITED_API
仅涵盖了定义,但是一个 API 还包括其他因素,例如预期的语义等。
Py_LIMITED_API
不能处理的一个问题是附带在较低 Python 版本中无效的参数调用某个函数。 例如,考虑一个接受 NULL
作为参数的函数。 在 Python 3.9 中,NULL
现在会选择一个默认行为,但在 Python 3.8 中,该参数将被直接使用,导致一个 NULL
引用被崩溃。 类似的参数也适用于结构体的字段。
另一个问题是当定义了 Py_LIMITED_API
时某些结构体字段目前不会被隐藏,即使它们是受限 API 的一部分。
出于这些原因,我们建议用要支持的 所有 Python 小版本号来测试一个扩展,并最好是用其中 最低 的版本来编译它。
我们还建议查看所使用 API 的全部文档以检查其是否显式指明为受限 API 的一部分。 即使定义了 Py_LIMITED_API
,少数私有声明还是会出于技术原因(或者甚至是作为程序缺陷在无意中)被暴露出来。
还要注意受限 API 并不必然是稳定的:在 Python 3.8 上用 Py_LIMITED_API
编译扩展意味着该扩展能在 Python 3.12 上运行,但它将不一定能用 Python 3.12 编译。 特别地,在稳定 ABI 保持稳定的情况下,部分受限 API 可能会被弃用并被移除。
ABI 的稳定性不仅取决于 Python,还取决于所使用的编译器、低层库和编译器选项。 对于稳定 ABI 的目标来说,这些细节定义了一个 “平台”。 它们通常会取决于 OS 类型和处理器架构。
确保在特定平台上的所有 Python 版本都以不破坏稳定 ABI 的方式构建是每个特定 Python 分发方的责任。 来自 python.org
以及许多第三方分发商的 Windows 和 macOS 发布版都必于这种情况。
目前,受限 API 包括下面这些项:
PyAIter_Check()
PyArg_Parse()
PyArg_ParseTuple()
PyArg_ParseTupleAndKeywords()
PyArg_UnpackTuple()
PyArg_VaParse()
PyArg_VaParseTupleAndKeywords()
PyArg_ValidateKeywordArguments()
PyBaseObject_Type
PyBool_FromLong()
PyBool_Type
PyBuffer_FillContiguousStrides()
PyBuffer_FillInfo()
PyBuffer_FromContiguous()
PyBuffer_GetPointer()
PyBuffer_IsContiguous()
PyBuffer_Release()
PyBuffer_SizeFromFormat()
PyBuffer_ToContiguous()
PyByteArrayIter_Type
PyByteArray_AsString()
PyByteArray_Concat()
PyByteArray_FromObject()
PyByteArray_FromStringAndSize()
PyByteArray_Resize()
PyByteArray_Size()
PyByteArray_Type
PyBytesIter_Type
PyBytes_AsString()
PyBytes_AsStringAndSize()
PyBytes_Concat()
PyBytes_ConcatAndDel()
PyBytes_DecodeEscape()
PyBytes_FromFormat()
PyBytes_FromFormatV()
PyBytes_FromObject()
PyBytes_FromString()
PyBytes_FromStringAndSize()
PyBytes_Repr()
PyBytes_Size()
PyBytes_Type
PyCFunction
PyCFunctionWithKeywords
PyCFunction_Call()
PyCFunction_GetFlags()
PyCFunction_GetFunction()
PyCFunction_GetSelf()
PyCFunction_New()
PyCFunction_NewEx()
PyCFunction_Type
PyCMethod_New()
PyCallIter_New()
PyCallIter_Type
PyCallable_Check()
PyCapsule_Destructor
PyCapsule_GetContext()
PyCapsule_GetDestructor()
PyCapsule_GetName()
PyCapsule_GetPointer()
PyCapsule_Import()
PyCapsule_IsValid()
PyCapsule_New()
PyCapsule_SetContext()
PyCapsule_SetDestructor()
PyCapsule_SetName()
PyCapsule_SetPointer()
PyCapsule_Type
PyClassMethodDescr_Type
PyCodec_BackslashReplaceErrors()
PyCodec_Decode()
PyCodec_Decoder()
PyCodec_Encode()
PyCodec_Encoder()
PyCodec_IgnoreErrors()
PyCodec_IncrementalDecoder()
PyCodec_IncrementalEncoder()
PyCodec_KnownEncoding()
PyCodec_LookupError()
PyCodec_NameReplaceErrors()
PyCodec_Register()
PyCodec_RegisterError()
PyCodec_ReplaceErrors()
PyCodec_StreamReader()
PyCodec_StreamWriter()
PyCodec_StrictErrors()
PyCodec_Unregister()
PyCodec_XMLCharRefReplaceErrors()
PyComplex_FromDoubles()
PyComplex_ImagAsDouble()
PyComplex_RealAsDouble()
PyComplex_Type
PyDescr_NewClassMethod()
PyDescr_NewGetSet()
PyDescr_NewMember()
PyDescr_NewMethod()
PyDictItems_Type
PyDictIterItem_Type
PyDictIterKey_Type
PyDictIterValue_Type
PyDictKeys_Type
PyDictProxy_New()
PyDictProxy_Type
PyDictRevIterItem_Type
PyDictRevIterKey_Type
PyDictRevIterValue_Type
PyDictValues_Type
PyDict_Clear()
PyDict_Contains()
PyDict_Copy()
PyDict_DelItem()
PyDict_DelItemString()
PyDict_GetItem()
PyDict_GetItemString()
PyDict_GetItemWithError()
PyDict_Items()
PyDict_Keys()
PyDict_Merge()
PyDict_MergeFromSeq2()
PyDict_New()
PyDict_Next()
PyDict_SetItem()
PyDict_SetItemString()
PyDict_Size()
PyDict_Type
PyDict_Update()
PyDict_Values()
PyEllipsis_Type
PyEnum_Type
PyErr_BadArgument()
PyErr_BadInternalCall()
PyErr_CheckSignals()
PyErr_Clear()
PyErr_Display()
PyErr_ExceptionMatches()
PyErr_Fetch()
PyErr_Format()
PyErr_FormatV()
PyErr_GetExcInfo()
PyErr_GetHandledException()
PyErr_GivenExceptionMatches()
PyErr_NewException()
PyErr_NewExceptionWithDoc()
PyErr_NoMemory()
PyErr_NormalizeException()
PyErr_Occurred()
PyErr_Print()
PyErr_PrintEx()
PyErr_ProgramText()
PyErr_ResourceWarning()
PyErr_Restore()
PyErr_SetExcFromWindowsErr()
PyErr_SetExcFromWindowsErrWithFilename()
PyErr_SetExcFromWindowsErrWithFilenameObject()
PyErr_SetExcFromWindowsErrWithFilenameObjects()
PyErr_SetExcInfo()
PyErr_SetFromErrno()
PyErr_SetFromErrnoWithFilename()
PyErr_SetFromErrnoWithFilenameObject()
PyErr_SetFromErrnoWithFilenameObjects()
PyErr_SetFromWindowsErr()
PyErr_SetFromWindowsErrWithFilename()
PyErr_SetHandledException()
PyErr_SetImportError()
PyErr_SetImportErrorSubclass()
PyErr_SetInterrupt()
PyErr_SetInterruptEx()
PyErr_SetNone()
PyErr_SetObject()
PyErr_SetString()
PyErr_SyntaxLocation()
PyErr_SyntaxLocationEx()
PyErr_WarnEx()
PyErr_WarnExplicit()
PyErr_WarnFormat()
PyErr_WriteUnraisable()
PyEval_AcquireLock()
PyEval_AcquireThread()
PyEval_CallFunction()
PyEval_CallMethod()
PyEval_CallObjectWithKeywords()
PyEval_EvalCode()
PyEval_EvalCodeEx()
PyEval_EvalFrame()
PyEval_EvalFrameEx()
PyEval_GetBuiltins()
PyEval_GetFrame()
PyEval_GetFuncDesc()
PyEval_GetFuncName()
PyEval_GetGlobals()
PyEval_GetLocals()
PyEval_InitThreads()
PyEval_ReleaseLock()
PyEval_ReleaseThread()
PyEval_RestoreThread()
PyEval_SaveThread()
PyEval_ThreadsInitialized()
PyExc_ArithmeticError
PyExc_AssertionError
PyExc_AttributeError
PyExc_BaseException
PyExc_BaseExceptionGroup
PyExc_BlockingIOError
PyExc_BrokenPipeError
PyExc_BufferError
PyExc_BytesWarning
PyExc_ChildProcessError
PyExc_ConnectionAbortedError
PyExc_ConnectionError
PyExc_ConnectionRefusedError
PyExc_ConnectionResetError
PyExc_DeprecationWarning
PyExc_EOFError
PyExc_EncodingWarning
PyExc_EnvironmentError
PyExc_Exception
PyExc_FileExistsError
PyExc_FileNotFoundError
PyExc_FloatingPointError
PyExc_FutureWarning
PyExc_GeneratorExit
PyExc_IOError
PyExc_ImportError
PyExc_ImportWarning
PyExc_IndentationError
PyExc_IndexError
PyExc_InterruptedError
PyExc_IsADirectoryError
PyExc_KeyError
PyExc_KeyboardInterrupt
PyExc_LookupError
PyExc_MemoryError
PyExc_ModuleNotFoundError
PyExc_NameError
PyExc_NotADirectoryError
PyExc_NotImplementedError
PyExc_OSError
PyExc_OverflowError
PyExc_PendingDeprecationWarning
PyExc_PermissionError
PyExc_ProcessLookupError
PyExc_RecursionError
PyExc_ReferenceError
PyExc_ResourceWarning
PyExc_RuntimeError
PyExc_RuntimeWarning
PyExc_StopAsyncIteration
PyExc_StopIteration
PyExc_SyntaxError
PyExc_SyntaxWarning
PyExc_SystemError
PyExc_SystemExit
PyExc_TabError
PyExc_TimeoutError
PyExc_TypeError
PyExc_UnboundLocalError
PyExc_UnicodeDecodeError
PyExc_UnicodeEncodeError
PyExc_UnicodeError
PyExc_UnicodeTranslateError
PyExc_UnicodeWarning
PyExc_UserWarning
PyExc_ValueError
PyExc_Warning
PyExc_WindowsError
PyExc_ZeroDivisionError
PyExceptionClass_Name()
PyException_GetCause()
PyException_GetContext()
PyException_GetTraceback()
PyException_SetCause()
PyException_SetContext()
PyException_SetTraceback()
PyFile_FromFd()
PyFile_GetLine()
PyFile_WriteObject()
PyFile_WriteString()
PyFilter_Type
PyFloat_AsDouble()
PyFloat_FromDouble()
PyFloat_FromString()
PyFloat_GetInfo()
PyFloat_GetMax()
PyFloat_GetMin()
PyFloat_Type
PyFrameObject
PyFrame_GetCode()
PyFrame_GetLineNumber()
PyFrozenSet_New()
PyFrozenSet_Type
PyGC_Collect()
PyGC_Disable()
PyGC_Enable()
PyGC_IsEnabled()
PyGILState_Ensure()
PyGILState_GetThisThreadState()
PyGILState_Release()
PyGILState_STATE
PyGetSetDef
PyGetSetDescr_Type
PyImport_AddModule()
PyImport_AddModuleObject()
PyImport_AppendInittab()
PyImport_ExecCodeModule()
PyImport_ExecCodeModuleEx()
PyImport_ExecCodeModuleObject()
PyImport_ExecCodeModuleWithPathnames()
PyImport_GetImporter()
PyImport_GetMagicNumber()
PyImport_GetMagicTag()
PyImport_GetModule()
PyImport_GetModuleDict()
PyImport_Import()
PyImport_ImportFrozenModule()
PyImport_ImportFrozenModuleObject()
PyImport_ImportModule()
PyImport_ImportModuleLevel()
PyImport_ImportModuleLevelObject()
PyImport_ImportModuleNoBlock()
PyImport_ReloadModule()
PyIndex_Check()
PyInterpreterState
PyInterpreterState_Clear()
PyInterpreterState_Delete()
PyInterpreterState_Get()
PyInterpreterState_GetDict()
PyInterpreterState_GetID()
PyInterpreterState_New()
PyIter_Check()
PyIter_Next()
PyIter_Send()
PyListIter_Type
PyListRevIter_Type
PyList_Append()
PyList_AsTuple()
PyList_GetItem()
PyList_GetSlice()
PyList_Insert()
PyList_New()
PyList_Reverse()
PyList_SetItem()
PyList_SetSlice()
PyList_Size()
PyList_Sort()
PyList_Type
PyLongObject
PyLongRangeIter_Type
PyLong_AsDouble()
PyLong_AsLong()
PyLong_AsLongAndOverflow()
PyLong_AsLongLong()
PyLong_AsLongLongAndOverflow()
PyLong_AsSize_t()
PyLong_AsSsize_t()
PyLong_AsUnsignedLong()
PyLong_AsUnsignedLongLong()
PyLong_AsUnsignedLongLongMask()
PyLong_AsUnsignedLongMask()
PyLong_AsVoidPtr()
PyLong_FromDouble()
PyLong_FromLong()
PyLong_FromLongLong()
PyLong_FromSize_t()
PyLong_FromSsize_t()
PyLong_FromString()
PyLong_FromUnsignedLong()
PyLong_FromUnsignedLongLong()
PyLong_FromVoidPtr()
PyLong_GetInfo()
PyLong_Type
PyMap_Type
PyMapping_Check()
PyMapping_GetItemString()
PyMapping_HasKey()
PyMapping_HasKeyString()
PyMapping_Items()
PyMapping_Keys()
PyMapping_Length()
PyMapping_SetItemString()
PyMapping_Size()
PyMapping_Values()
PyMem_Calloc()
PyMem_Free()
PyMem_Malloc()
PyMem_Realloc()
PyMemberDef
PyMemberDescr_Type
PyMemoryView_FromBuffer()
PyMemoryView_FromMemory()
PyMemoryView_FromObject()
PyMemoryView_GetContiguous()
PyMemoryView_Type
PyMethodDef
PyMethodDescr_Type
PyModuleDef
PyModuleDef_Base
PyModuleDef_Init()
PyModuleDef_Type
PyModule_AddFunctions()
PyModule_AddIntConstant()
PyModule_AddObject()
PyModule_AddObjectRef()
PyModule_AddStringConstant()
PyModule_AddType()
PyModule_Create2()
PyModule_ExecDef()
PyModule_FromDefAndSpec2()
PyModule_GetDef()
PyModule_GetDict()
PyModule_GetFilename()
PyModule_GetFilenameObject()
PyModule_GetName()
PyModule_GetNameObject()
PyModule_GetState()
PyModule_New()
PyModule_NewObject()
PyModule_SetDocString()
PyModule_Type
PyNumber_Absolute()
PyNumber_Add()
PyNumber_And()
PyNumber_AsSsize_t()
PyNumber_Check()
PyNumber_Divmod()
PyNumber_Float()
PyNumber_FloorDivide()
PyNumber_InPlaceAdd()
PyNumber_InPlaceAnd()
PyNumber_InPlaceFloorDivide()
PyNumber_InPlaceLshift()
PyNumber_InPlaceMatrixMultiply()
PyNumber_InPlaceMultiply()
PyNumber_InPlaceOr()
PyNumber_InPlacePower()
PyNumber_InPlaceRemainder()
PyNumber_InPlaceRshift()
PyNumber_InPlaceSubtract()
PyNumber_InPlaceTrueDivide()
PyNumber_InPlaceXor()
PyNumber_Index()
PyNumber_Invert()
PyNumber_Long()
PyNumber_Lshift()
PyNumber_MatrixMultiply()
PyNumber_Multiply()
PyNumber_Negative()
PyNumber_Or()
PyNumber_Positive()
PyNumber_Power()
PyNumber_Remainder()
PyNumber_Rshift()
PyNumber_Subtract()
PyNumber_ToBase()
PyNumber_TrueDivide()
PyNumber_Xor()
PyOS_AfterFork()
PyOS_AfterFork_Child()
PyOS_AfterFork_Parent()
PyOS_BeforeFork()
PyOS_CheckStack()
PyOS_FSPath()
PyOS_InputHook
PyOS_InterruptOccurred()
PyOS_double_to_string()
PyOS_getsig()
PyOS_mystricmp()
PyOS_mystrnicmp()
PyOS_setsig()
PyOS_sighandler_t
PyOS_snprintf()
PyOS_string_to_double()
PyOS_strtol()
PyOS_strtoul()
PyOS_vsnprintf()
PyObject
PyObject.ob_refcnt
PyObject.ob_type
PyObject_ASCII()
PyObject_AsCharBuffer()
PyObject_AsFileDescriptor()
PyObject_AsReadBuffer()
PyObject_AsWriteBuffer()
PyObject_Bytes()
PyObject_Call()
PyObject_CallFunction()
PyObject_CallFunctionObjArgs()
PyObject_CallMethod()
PyObject_CallMethodObjArgs()
PyObject_CallNoArgs()
PyObject_CallObject()
PyObject_Calloc()
PyObject_CheckBuffer()
PyObject_CheckReadBuffer()
PyObject_ClearWeakRefs()
PyObject_CopyData()
PyObject_DelItem()
PyObject_DelItemString()
PyObject_Dir()
PyObject_Format()
PyObject_Free()
PyObject_GC_Del()
PyObject_GC_IsFinalized()
PyObject_GC_IsTracked()
PyObject_GC_Track()
PyObject_GC_UnTrack()
PyObject_GenericGetAttr()
PyObject_GenericGetDict()
PyObject_GenericSetAttr()
PyObject_GenericSetDict()
PyObject_GetAIter()
PyObject_GetAttr()
PyObject_GetAttrString()
PyObject_GetBuffer()
PyObject_GetItem()
PyObject_GetIter()
PyObject_HasAttr()
PyObject_HasAttrString()
PyObject_Hash()
PyObject_HashNotImplemented()
PyObject_Init()
PyObject_InitVar()
PyObject_IsInstance()
PyObject_IsSubclass()
PyObject_IsTrue()
PyObject_Length()
PyObject_Malloc()
PyObject_Not()
PyObject_Realloc()
PyObject_Repr()
PyObject_RichCompare()
PyObject_RichCompareBool()
PyObject_SelfIter()
PyObject_SetAttr()
PyObject_SetAttrString()
PyObject_SetItem()
PyObject_Size()
PyObject_Str()
PyObject_Type()
PyProperty_Type
PyRangeIter_Type
PyRange_Type
PyReversed_Type
PySeqIter_New()
PySeqIter_Type
PySequence_Check()
PySequence_Concat()
PySequence_Contains()
PySequence_Count()
PySequence_DelItem()
PySequence_DelSlice()
PySequence_Fast()
PySequence_GetItem()
PySequence_GetSlice()
PySequence_In()
PySequence_InPlaceConcat()
PySequence_InPlaceRepeat()
PySequence_Index()
PySequence_Length()
PySequence_List()
PySequence_Repeat()
PySequence_SetItem()
PySequence_SetSlice()
PySequence_Size()
PySequence_Tuple()
PySetIter_Type
PySet_Add()
PySet_Clear()
PySet_Contains()
PySet_Discard()
PySet_New()
PySet_Pop()
PySet_Size()
PySet_Type
PySlice_AdjustIndices()
PySlice_GetIndices()
PySlice_GetIndicesEx()
PySlice_New()
PySlice_Type
PySlice_Unpack()
PyState_AddModule()
PyState_FindModule()
PyState_RemoveModule()
PyStructSequence_Desc
PyStructSequence_Field
PyStructSequence_GetItem()
PyStructSequence_New()
PyStructSequence_NewType()
PyStructSequence_SetItem()
PyStructSequence_UnnamedField
PySuper_Type
PySys_AddWarnOption()
PySys_AddWarnOptionUnicode()
PySys_AddXOption()
PySys_FormatStderr()
PySys_FormatStdout()
PySys_GetObject()
PySys_GetXOptions()
PySys_HasWarnOptions()
PySys_ResetWarnOptions()
PySys_SetArgv()
PySys_SetArgvEx()
PySys_SetObject()
PySys_SetPath()
PySys_WriteStderr()
PySys_WriteStdout()
PyThreadState
PyThreadState_Clear()
PyThreadState_Delete()
PyThreadState_Get()
PyThreadState_GetDict()
PyThreadState_GetFrame()
PyThreadState_GetID()
PyThreadState_GetInterpreter()
PyThreadState_New()
PyThreadState_SetAsyncExc()
PyThreadState_Swap()
PyThread_GetInfo()
PyThread_ReInitTLS()
PyThread_acquire_lock()
PyThread_acquire_lock_timed()
PyThread_allocate_lock()
PyThread_create_key()
PyThread_delete_key()
PyThread_delete_key_value()
PyThread_exit_thread()
PyThread_free_lock()
PyThread_get_key_value()
PyThread_get_stacksize()
PyThread_get_thread_ident()
PyThread_get_thread_native_id()
PyThread_init_thread()
PyThread_release_lock()
PyThread_set_key_value()
PyThread_set_stacksize()
PyThread_start_new_thread()
PyThread_tss_alloc()
PyThread_tss_create()
PyThread_tss_delete()
PyThread_tss_free()
PyThread_tss_get()
PyThread_tss_is_created()
PyThread_tss_set()
PyTraceBack_Here()
PyTraceBack_Print()
PyTraceBack_Type
PyTupleIter_Type
PyTuple_GetItem()
PyTuple_GetSlice()
PyTuple_New()
PyTuple_Pack()
PyTuple_SetItem()
PyTuple_Size()
PyTuple_Type
PyTypeObject
PyType_ClearCache()
PyType_FromModuleAndSpec()
PyType_FromSpec()
PyType_FromSpecWithBases()
PyType_GenericAlloc()
PyType_GenericNew()
PyType_GetFlags()
PyType_GetModule()
PyType_GetModuleState()
PyType_GetName()
PyType_GetQualName()
PyType_GetSlot()
PyType_IsSubtype()
PyType_Modified()
PyType_Ready()
PyType_Slot
PyType_Spec
PyType_Type
PyUnicodeDecodeError_Create()
PyUnicodeDecodeError_GetEncoding()
PyUnicodeDecodeError_GetEnd()
PyUnicodeDecodeError_GetObject()
PyUnicodeDecodeError_GetReason()
PyUnicodeDecodeError_GetStart()
PyUnicodeDecodeError_SetEnd()
PyUnicodeDecodeError_SetReason()
PyUnicodeDecodeError_SetStart()
PyUnicodeEncodeError_GetEncoding()
PyUnicodeEncodeError_GetEnd()
PyUnicodeEncodeError_GetObject()
PyUnicodeEncodeError_GetReason()
PyUnicodeEncodeError_GetStart()
PyUnicodeEncodeError_SetEnd()
PyUnicodeEncodeError_SetReason()
PyUnicodeEncodeError_SetStart()
PyUnicodeIter_Type
PyUnicodeTranslateError_GetEnd()
PyUnicodeTranslateError_GetObject()
PyUnicodeTranslateError_GetReason()
PyUnicodeTranslateError_GetStart()
PyUnicodeTranslateError_SetEnd()
PyUnicodeTranslateError_SetReason()
PyUnicodeTranslateError_SetStart()
PyUnicode_Append()
PyUnicode_AppendAndDel()
PyUnicode_AsASCIIString()
PyUnicode_AsCharmapString()
PyUnicode_AsDecodedObject()
PyUnicode_AsDecodedUnicode()
PyUnicode_AsEncodedObject()
PyUnicode_AsEncodedString()
PyUnicode_AsEncodedUnicode()
PyUnicode_AsLatin1String()
PyUnicode_AsMBCSString()
PyUnicode_AsRawUnicodeEscapeString()
PyUnicode_AsUCS4()
PyUnicode_AsUCS4Copy()
PyUnicode_AsUTF16String()
PyUnicode_AsUTF32String()
PyUnicode_AsUTF8AndSize()
PyUnicode_AsUTF8String()
PyUnicode_AsUnicodeEscapeString()
PyUnicode_AsWideChar()
PyUnicode_AsWideCharString()
PyUnicode_BuildEncodingMap()
PyUnicode_Compare()
PyUnicode_CompareWithASCIIString()
PyUnicode_Concat()
PyUnicode_Contains()
PyUnicode_Count()
PyUnicode_Decode()
PyUnicode_DecodeASCII()
PyUnicode_DecodeCharmap()
PyUnicode_DecodeCodePageStateful()
PyUnicode_DecodeFSDefault()
PyUnicode_DecodeFSDefaultAndSize()
PyUnicode_DecodeLatin1()
PyUnicode_DecodeLocale()
PyUnicode_DecodeLocaleAndSize()
PyUnicode_DecodeMBCS()
PyUnicode_DecodeMBCSStateful()
PyUnicode_DecodeRawUnicodeEscape()
PyUnicode_DecodeUTF16()
PyUnicode_DecodeUTF16Stateful()
PyUnicode_DecodeUTF32()
PyUnicode_DecodeUTF32Stateful()
PyUnicode_DecodeUTF7()
PyUnicode_DecodeUTF7Stateful()
PyUnicode_DecodeUTF8()
PyUnicode_DecodeUTF8Stateful()
PyUnicode_DecodeUnicodeEscape()
PyUnicode_EncodeCodePage()
PyUnicode_EncodeFSDefault()
PyUnicode_EncodeLocale()
PyUnicode_FSConverter()
PyUnicode_FSDecoder()
PyUnicode_Find()
PyUnicode_FindChar()
PyUnicode_Format()
PyUnicode_FromEncodedObject()
PyUnicode_FromFormat()
PyUnicode_FromFormatV()
PyUnicode_FromObject()
PyUnicode_FromOrdinal()
PyUnicode_FromString()
PyUnicode_FromStringAndSize()
PyUnicode_FromWideChar()
PyUnicode_GetDefaultEncoding()
PyUnicode_GetLength()
PyUnicode_GetSize()
PyUnicode_InternFromString()
PyUnicode_InternImmortal()
PyUnicode_InternInPlace()
PyUnicode_IsIdentifier()
PyUnicode_Join()
PyUnicode_Partition()
PyUnicode_RPartition()
PyUnicode_RSplit()
PyUnicode_ReadChar()
PyUnicode_Replace()
PyUnicode_Resize()
PyUnicode_RichCompare()
PyUnicode_Split()
PyUnicode_Splitlines()
PyUnicode_Substring()
PyUnicode_Tailmatch()
PyUnicode_Translate()
PyUnicode_Type
PyUnicode_WriteChar()
PyVarObject
PyVarObject.ob_base
PyVarObject.ob_size
PyWeakReference
PyWeakref_GetObject()
PyWeakref_NewProxy()
PyWeakref_NewRef()
PyWrapperDescr_Type
PyWrapper_New()
PyZip_Type
Py_AddPendingCall()
Py_AtExit()
Py_BEGIN_ALLOW_THREADS
Py_BLOCK_THREADS
Py_BuildValue()
Py_BytesMain()
Py_CompileString()
Py_DecRef()
Py_DecodeLocale()
Py_END_ALLOW_THREADS
Py_EncodeLocale()
Py_EndInterpreter()
Py_EnterRecursiveCall()
Py_Exit()
Py_FatalError()
Py_FileSystemDefaultEncodeErrors
Py_FileSystemDefaultEncoding
Py_Finalize()
Py_FinalizeEx()
Py_GenericAlias()
Py_GenericAliasType
Py_GetBuildInfo()
Py_GetCompiler()
Py_GetCopyright()
Py_GetExecPrefix()
Py_GetPath()
Py_GetPlatform()
Py_GetPrefix()
Py_GetProgramFullPath()
Py_GetProgramName()
Py_GetPythonHome()
Py_GetRecursionLimit()
Py_GetVersion()
Py_HasFileSystemDefaultEncoding
Py_IncRef()
Py_Initialize()
Py_InitializeEx()
Py_Is()
Py_IsFalse()
Py_IsInitialized()
Py_IsNone()
Py_IsTrue()
Py_LeaveRecursiveCall()
Py_Main()
Py_MakePendingCalls()
Py_NewInterpreter()
Py_NewRef()
Py_ReprEnter()
Py_ReprLeave()
Py_SetPath()
Py_SetProgramName()
Py_SetPythonHome()
Py_SetRecursionLimit()
Py_UCS4
Py_UNBLOCK_THREADS
Py_UTF8Mode
Py_VaBuildValue()
Py_Version
Py_XNewRef()
Py_buffer
Py_intptr_t
Py_ssize_t
Py_uintptr_t
allocfunc
binaryfunc
descrgetfunc
descrsetfunc
destructor
getattrfunc
getattrofunc
getiterfunc
getter
hashfunc
initproc
inquiry
iternextfunc
lenfunc
newfunc
objobjargproc
objobjproc
reprfunc
richcmpfunc
setattrfunc
setattrofunc
setter
ssizeargfunc
ssizeobjargproc
ssizessizeargfunc
ssizessizeobjargproc
symtable
ternaryfunc
traverseproc
unaryfunc
visitproc
网页名称:创新互联Python教程:CAPI的稳定性
分享URL:http://www.shufengxianlan.com/qtweb/news21/111521.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联