“Python/docs/3.9/c-api/concrete”的版本间差异
来自菜鸟教程
Python/docs/3.9/c-api/concrete
(autoload) |
小 (Page commit) |
||
第1行: | 第1行: | ||
+ | {{DISPLAYTITLE:具体对象层 — Python 文档}} | ||
<div id="concrete-objects-layer" class="section"> | <div id="concrete-objects-layer" class="section"> | ||
<span id="concrete"></span> | <span id="concrete"></span> | ||
− | = | + | = 具体对象层 = |
− | + | 本章中的函数特定于某些 Python 对象类型。 向它们传递错误类型的对象不是一个好主意; 如果您从 Python 程序接收到一个对象,但您不确定它的类型是否正确,则必须先执行类型检查; 例如,要检查对象是否是字典,请使用 [[../dict#c|PyDict_Check()]]。 本章的结构类似于 Python 对象类型的“家谱”。 | |
− | |||
− | |||
− | |||
− | |||
− | |||
<div class="admonition warning"> | <div class="admonition warning"> | ||
第15行: | 第11行: | ||
警告 | 警告 | ||
− | + | 虽然本章中描述的函数会仔细检查传入的对象的类型,但其中许多函数不会检查传递的是 <code>NULL</code> 而不是有效对象。 允许传入 <code>NULL</code> 会导致内存访问冲突并立即终止解释器。 | |
− | |||
− | |||
− | |||
第25行: | 第18行: | ||
<span id="fundamental"></span> | <span id="fundamental"></span> | ||
− | == | + | == 基本对象 == |
− | + | 本节介绍 Python 类型对象和单例对象 <code>None</code>。 | |
<div class="toctree-wrapper compound"> | <div class="toctree-wrapper compound"> | ||
− | * [[../type| | + | * [[../type|类型对象]] |
− | ** [[../type#creating-heap-allocated-types| | + | ** [[../type#creating-heap-allocated-types|创建堆分配类型]] |
− | * [[../none| | + | * [[../none|<code>None</code> 对象]] |
第42行: | 第35行: | ||
<span id="numericobjects"></span> | <span id="numericobjects"></span> | ||
− | == | + | == 数字对象 == |
<div id="index-0" class="toctree-wrapper compound"> | <div id="index-0" class="toctree-wrapper compound"> | ||
− | * [[../long| | + | * [[../long|整数对象]] |
− | * [[../bool| | + | * [[../bool|布尔对象]] |
− | * [[../float| | + | * [[../float|浮点对象]] |
− | * [[../complex| | + | * [[../complex|复数对象]] |
− | ** [[../complex#complex-numbers-as-c-structures| | + | ** [[../complex#complex-numbers-as-c-structures|作为 C 结构的复数]] |
− | ** [[../complex#complex-numbers-as-python-objects| | + | ** [[../complex#complex-numbers-as-python-objects|复数作为 Python 对象]] |
第60行: | 第53行: | ||
<span id="sequenceobjects"></span> | <span id="sequenceobjects"></span> | ||
− | == | + | == 序列对象 == |
− | + | 序列对象的泛型操作在前一章中讨论过; 本节讨论 Python 语言固有的特定类型的序列对象。 | |
− | |||
− | |||
<div class="toctree-wrapper compound"> | <div class="toctree-wrapper compound"> | ||
− | * [[../bytes| | + | * [[../bytes|字节对象]] |
− | * [[../bytearray| | + | * [[../bytearray|字节数组对象]] |
− | ** [[../bytearray#type-check-macros| | + | ** [[../bytearray#type-check-macros|类型检查宏]] |
− | ** [[../bytearray#direct-api-functions| | + | ** [[../bytearray#direct-api-functions|直接 API 函数]] |
− | ** [[../bytearray#macros| | + | ** [[../bytearray#macros|宏]] |
− | * [[../unicode|Unicode | + | * [[../unicode|Unicode 对象和编解码器]] |
− | ** [[../unicode#unicode-objects|Unicode | + | ** [[../unicode#unicode-objects|Unicode 对象]] |
− | *** [[../unicode#unicode-type|Unicode | + | *** [[../unicode#unicode-type|Unicode 类型]] |
− | *** [[../unicode#unicode-character-properties|Unicode | + | *** [[../unicode#unicode-character-properties|Unicode 字符属性]] |
− | *** [[../unicode#creating-and-accessing-unicode-strings| | + | *** [[../unicode#creating-and-accessing-unicode-strings|创建和访问 Unicode 字符串]] |
− | *** [[../unicode#deprecated-py-unicode-apis| | + | *** [[../unicode#deprecated-py-unicode-apis|已弃用的 Py_UNICODE API]] |
− | *** [[../unicode#locale-encoding| | + | *** [[../unicode#locale-encoding|语言环境编码]] |
− | *** [[../unicode#file-system-encoding| | + | *** [[../unicode#file-system-encoding|文件系统编码]] |
− | *** [[../unicode#wchar-t-support|wchar_t | + | *** [[../unicode#wchar-t-support|wchar_t 支持]] |
− | ** [[../unicode#built-in-codecs| | + | ** [[../unicode#built-in-codecs|内置编解码器]] |
− | *** [[../unicode#generic-codecs| | + | *** [[../unicode#generic-codecs|通用编解码器]] |
− | *** [[../unicode#utf-8-codecs|UTF-8 | + | *** [[../unicode#utf-8-codecs|UTF-8 编解码器]] |
− | *** [[../unicode#utf-32-codecs|UTF-32 | + | *** [[../unicode#utf-32-codecs|UTF-32 编解码器]] |
− | *** [[../unicode#utf-16-codecs|UTF-16 | + | *** [[../unicode#utf-16-codecs|UTF-16 编解码器]] |
− | *** [[../unicode#utf-7-codecs|UTF-7 | + | *** [[../unicode#utf-7-codecs|UTF-7 编解码器]] |
− | *** [[../unicode#unicode-escape-codecs|Unicode | + | *** [[../unicode#unicode-escape-codecs|Unicode 转义编解码器]] |
− | *** [[../unicode#raw-unicode-escape-codecs| | + | *** [[../unicode#raw-unicode-escape-codecs|原始 Unicode 转义编解码器]] |
− | *** [[../unicode#latin-1-codecs| | + | *** [[../unicode#latin-1-codecs|拉丁 1 编解码器]] |
− | *** [[../unicode#ascii-codecs|ASCII | + | *** [[../unicode#ascii-codecs|ASCII 编解码器]] |
− | *** [[../unicode#character-map-codecs| | + | *** [[../unicode#character-map-codecs|字符映射编解码器]] |
− | *** [[../unicode#mbcs-codecs-for-windows|MBCS | + | *** [[../unicode#mbcs-codecs-for-windows|适用于 Windows 的 MBCS 编解码器]] |
− | *** [[../unicode#methods-slots| | + | *** [[../unicode#methods-slots|方法和插槽]] |
− | ** [[../unicode#methods-and-slot-functions| | + | ** [[../unicode#methods-and-slot-functions|方法和槽函数]] |
− | * [[../tuple| | + | * [[../tuple|元组对象]] |
− | * [[../tuple#struct-sequence-objects| | + | * [[../tuple#struct-sequence-objects|结构序列对象]] |
− | * [[../list| | + | * [[../list|列出对象]] |
第107行: | 第98行: | ||
<span id="mapobjects"></span> | <span id="mapobjects"></span> | ||
− | == | + | == 容器对象 == |
<div id="index-2" class="toctree-wrapper compound"> | <div id="index-2" class="toctree-wrapper compound"> | ||
− | * [[../dict| | + | * [[../dict|字典对象]] |
− | * [[../set| | + | * [[../set|设置对象]] |
第121行: | 第112行: | ||
<span id="otherobjects"></span> | <span id="otherobjects"></span> | ||
− | == | + | == 函数对象 == |
<div class="toctree-wrapper compound"> | <div class="toctree-wrapper compound"> | ||
− | * [[../function| | + | * [[../function|函数对象]] |
− | * [[../method| | + | * [[../method|实例方法对象]] |
− | * [[../method#method-objects| | + | * [[../method#method-objects|方法对象]] |
− | * [[../cell| | + | * [[../cell|单元格对象]] |
− | * [[../code| | + | * [[../code|代码对象]] |
第137行: | 第128行: | ||
<div id="other-objects" class="section"> | <div id="other-objects" class="section"> | ||
− | == | + | == 其他对象 == |
<div class="toctree-wrapper compound"> | <div class="toctree-wrapper compound"> | ||
− | * [[../file| | + | * [[../file|文件对象]] |
− | * [[../module| | + | * [[../module|模块对象]] |
− | ** [[../module#initializing-c-modules| | + | ** [[../module#initializing-c-modules|初始化 C 模块]] |
− | *** [[../module#single-phase-initialization| | + | *** [[../module#single-phase-initialization|单相初始化]] |
− | *** [[../module#multi-phase-initialization| | + | *** [[../module#multi-phase-initialization|多阶段初始化]] |
− | *** [[../module#low-level-module-creation-functions| | + | *** [[../module#low-level-module-creation-functions|低级模块创建函数]] |
− | *** [[../module#support-functions| | + | *** [[../module#support-functions|支持功能]] |
− | ** [[../module#module-lookup| | + | ** [[../module#module-lookup|模块查找]] |
− | * [[../iterator| | + | * [[../iterator|迭代器对象]] |
− | * [[../descriptor| | + | * [[../descriptor|描述符对象]] |
− | * [[../slice| | + | * [[../slice|切片对象]] |
− | * [[../slice#ellipsis-object| | + | * [[../slice#ellipsis-object|省略号对象]] |
− | * [[../memoryview| | + | * [[../memoryview|内存视图对象]] |
− | * [[../weakref| | + | * [[../weakref|弱引用对象]] |
− | * [[../capsule| | + | * [[../capsule|胶囊]] |
− | * [[../gen| | + | * [[../gen|生成器对象]] |
− | * [[../coro| | + | * [[../coro|协程对象]] |
− | * [[../contextvars| | + | * [[../contextvars|上下文变量对象]] |
− | * [[../datetime| | + | * [[../datetime|日期时间对象]] |
+ | * [[../typehints|类型提示的对象]] | ||
第167行: | 第159行: | ||
</div> | </div> | ||
+ | <div class="clearer"> | ||
− | [[Category:Python 3.9 | + | |
+ | |||
+ | </div> | ||
+ | |||
+ | [[Category:Python 3.9 文档]] |
2021年10月31日 (日) 04:50的最新版本
具体对象层
本章中的函数特定于某些 Python 对象类型。 向它们传递错误类型的对象不是一个好主意; 如果您从 Python 程序接收到一个对象,但您不确定它的类型是否正确,则必须先执行类型检查; 例如,要检查对象是否是字典,请使用 PyDict_Check()。 本章的结构类似于 Python 对象类型的“家谱”。
警告
虽然本章中描述的函数会仔细检查传入的对象的类型,但其中许多函数不会检查传递的是 NULL
而不是有效对象。 允许传入 NULL
会导致内存访问冲突并立即终止解释器。