Files
hustoj/web/python-docs/c-api/codec.html
2025-03-09 17:10:56 +08:00

395 lines
26 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="zh_CN">
<head>
<meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
<title>编解码器注册与支持功能 &#8212; Python 3.8.20 文档</title><meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="../_static/pydoctheme.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<script id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script src="../_static/jquery.js"></script>
<script src="../_static/underscore.js"></script>
<script src="../_static/doctools.js"></script>
<script src="../_static/language_data.js"></script>
<script src="../_static/translations.js"></script>
<script src="../_static/sidebar.js"></script>
<link rel="search" type="application/opensearchdescription+xml"
title="在 Python 3.8.20 文档 中搜索"
href="../_static/opensearch.xml"/>
<link rel="author" title="关于这些文档" href="../about.html" />
<link rel="index" title="索引" href="../genindex.html" />
<link rel="search" title="搜索" href="../search.html" />
<link rel="copyright" title="版权所有" href="../copyright.html" />
<link rel="next" title="抽象对象层" href="abstract.html" />
<link rel="prev" title="反射" href="reflection.html" />
<link rel="canonical" href="https://docs.python.org/3/c-api/codec.html" />
<style>
@media only screen {
table.full-width-table {
width: 100%;
}
}
</style>
<link rel="shortcut icon" type="image/png" href="../_static/py.svg" />
<script type="text/javascript" src="../_static/copybutton.js"></script>
<script type="text/javascript" src="../_static/menu.js"></script>
</head>
<body>
<div class="mobile-nav">
<input type="checkbox" id="menuToggler" class="toggler__input" aria-controls="navigation"
aria-pressed="false" aria-expanded="false" role="button" aria-label="Menu" />
<label for="menuToggler" class="toggler__label">
<span></span>
</label>
<nav class="nav-content" role="navigation">
<a href="https://www.python.org/" class="nav-logo">
<img src="../_static/py.svg" alt="Logo"/>
</a>
<div class="version_switcher_placeholder"></div>
<form role="search" class="search" action="../search.html" method="get">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" class="search-icon">
<path fill-rule="nonzero"
d="M15.5 14h-.79l-.28-.27a6.5 6.5 0 001.48-5.34c-.47-2.78-2.79-5-5.59-5.34a6.505 6.505 0 00-7.27 7.27c.34 2.8 2.56 5.12 5.34 5.59a6.5 6.5 0 005.34-1.48l.27.28v.79l4.25 4.25c.41.41 1.08.41 1.49 0 .41-.41.41-1.08 0-1.49L15.5 14zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z" fill="#444"></path>
</svg>
<input type="text" name="q" aria-label="快速搜索"/>
<input type="submit" value="转向"/>
</form>
</nav>
<div class="menu-wrapper">
<nav class="menu" role="navigation" aria-label="main navigation">
<div class="language_switcher_placeholder"></div>
<h3><a href="../contents.html">目录</a></h3>
<ul>
<li><a class="reference internal" href="#">编解码器注册与支持功能</a><ul>
<li><a class="reference internal" href="#codec-lookup-api">Codec 查找API</a></li>
<li><a class="reference internal" href="#registry-api-for-unicode-encoding-error-handlers">用于Unicode编码错误处理程序的注册表API</a></li>
</ul>
</li>
</ul>
<h4>上一个主题</h4>
<p class="topless"><a href="reflection.html"
title="上一章">反射</a></p>
<h4>下一个主题</h4>
<p class="topless"><a href="abstract.html"
title="下一章">抽象对象层</a></p>
<div role="note" aria-label="source link">
<h3>本页</h3>
<ul class="this-page-menu">
<li><a href="../bugs.html">报告 Bug</a></li>
<li>
<a href="https://github.com/python/cpython/blob/3.8/Doc/c-api/codec.rst"
rel="nofollow">显示源代码
</a>
</li>
</ul>
</div>
</nav>
</div>
</div>
<div id="outdated-warning" style="padding: .5em; text-align: center; background-color: #FFBABA; color: #6A0E0E;">
这个文档所针对的是一个已不再受支持的 Python 旧版本。
你应当升级版本,并阅读
<a href="/3/c-api/codec.html"> Python 当前稳定版本的文档</a>.
</div>
<div class="related" role="navigation" aria-label="related navigation">
<h3>导航</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="总目录"
accesskey="I">索引</a></li>
<li class="right" >
<a href="../py-modindex.html" title="Python 模块索引"
>模块</a> |</li>
<li class="right" >
<a href="abstract.html" title="抽象对象层"
accesskey="N">下一页</a> |</li>
<li class="right" >
<a href="reflection.html" title="反射"
accesskey="P">上一页</a> |</li>
<li><img src="../_static/py.svg" alt="python logo" style="vertical-align: middle; margin-top: -1px"/></li>
<li><a href="https://www.python.org/">Python</a> &#187;</li>
<li class="switchers">
<div class="language_switcher_placeholder"></div>
<div class="version_switcher_placeholder"></div>
</li>
<li>
</li>
<li id="cpython-language-and-version">
<a href="../index.html">3.8.20 Documentation</a> &#187;
</li>
<li class="nav-item nav-item-1"><a href="index.html" >Python/C API 参考手册</a> &#187;</li>
<li class="nav-item nav-item-2"><a href="utilities.html" accesskey="U">工具</a> &#187;</li>
<li class="right">
<div class="inline-search" role="search">
<form class="inline-search" action="../search.html" method="get">
<input placeholder="快速搜索" aria-label="快速搜索" type="text" name="q" />
<input type="submit" value="转向" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
|
</li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<section id="codec-registry-and-support-functions">
<span id="codec-registry"></span><h1>编解码器注册与支持功能<a class="headerlink" href="#codec-registry-and-support-functions" title="永久链接至标题"></a></h1>
<dl class="function">
<dt id="c.PyCodec_Register">
int <code class="sig-name descname">PyCodec_Register</code><span class="sig-paren">(</span><a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a><em> *search_function</em><span class="sig-paren">)</span><a class="headerlink" href="#c.PyCodec_Register" title="永久链接至目标"></a></dt>
<dd><p>注册一个新的编解码器搜索函数。</p>
<p>作为副作用,其尝试加载 <code class="xref py py-mod docutils literal notranslate"><span class="pre">encodings</span></code> 包,如果尚未完成,请确保它始终位于搜索函数列表的第一位。</p>
</dd></dl>
<dl class="function">
<dt id="c.PyCodec_KnownEncoding">
int <code class="sig-name descname">PyCodec_KnownEncoding</code><span class="sig-paren">(</span>const char<em> *encoding</em><span class="sig-paren">)</span><a class="headerlink" href="#c.PyCodec_KnownEncoding" title="永久链接至目标"></a></dt>
<dd><p>根据注册的给定 <em>encoding</em> 的编解码器是否已存在而返回 <code class="docutils literal notranslate"><span class="pre">1</span></code><code class="docutils literal notranslate"><span class="pre">0</span></code>。此函数总能成功。</p>
</dd></dl>
<dl class="function">
<dt id="c.PyCodec_Encode">
<a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a>* <code class="sig-name descname">PyCodec_Encode</code><span class="sig-paren">(</span><a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a><em> *object</em>, const char<em> *encoding</em>, const char<em> *errors</em><span class="sig-paren">)</span><a class="headerlink" href="#c.PyCodec_Encode" title="永久链接至目标"></a></dt>
<dd><em class="refcount">Return value: New reference.</em><p>泛型编解码器基本编码 API。</p>
<p><em>object</em> 使用由 <em>errors</em> 所定义的错误处理方法传递给定 <em>encoding</em> 的编码器函数。 <em>errors</em> 可以为 <code class="docutils literal notranslate"><span class="pre">NULL</span></code> 表示使用为编码器所定义的默认方法。 如果找不到编码器则会引发 <a class="reference internal" href="../library/exceptions.html#LookupError" title="LookupError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">LookupError</span></code></a></p>
</dd></dl>
<dl class="function">
<dt id="c.PyCodec_Decode">
<a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a>* <code class="sig-name descname">PyCodec_Decode</code><span class="sig-paren">(</span><a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a><em> *object</em>, const char<em> *encoding</em>, const char<em> *errors</em><span class="sig-paren">)</span><a class="headerlink" href="#c.PyCodec_Decode" title="永久链接至目标"></a></dt>
<dd><em class="refcount">Return value: New reference.</em><p>泛型编解码器基本解码 API。</p>
<p><em>object</em> 使用由 <em>errors</em> 所定义的错误处理方法传递给定 <em>encoding</em> 的解码器函数。 <em>errors</em> 可以为 <code class="docutils literal notranslate"><span class="pre">NULL</span></code> 表示使用为编解码器所定义的默认方法。 如果找不到编解码器则会引发 <a class="reference internal" href="../library/exceptions.html#LookupError" title="LookupError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">LookupError</span></code></a></p>
</dd></dl>
<section id="codec-lookup-api">
<h2>Codec 查找API<a class="headerlink" href="#codec-lookup-api" title="永久链接至标题"></a></h2>
<p>在下列函数中,<em>encoding</em> 字符串会被查找并转换为小写字母形式,这使得通过此机制查找编码格式实际上对大小写不敏感。 如果未找到任何编解码器,则将设置 <a class="reference internal" href="../library/exceptions.html#KeyError" title="KeyError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">KeyError</span></code></a> 并返回 <code class="docutils literal notranslate"><span class="pre">NULL</span></code></p>
<dl class="function">
<dt id="c.PyCodec_Encoder">
<a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a>* <code class="sig-name descname">PyCodec_Encoder</code><span class="sig-paren">(</span>const char<em> *encoding</em><span class="sig-paren">)</span><a class="headerlink" href="#c.PyCodec_Encoder" title="永久链接至目标"></a></dt>
<dd><em class="refcount">Return value: New reference.</em><p>为给定的 <em>encoding</em> 获取一个编码器函数。</p>
</dd></dl>
<dl class="function">
<dt id="c.PyCodec_Decoder">
<a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a>* <code class="sig-name descname">PyCodec_Decoder</code><span class="sig-paren">(</span>const char<em> *encoding</em><span class="sig-paren">)</span><a class="headerlink" href="#c.PyCodec_Decoder" title="永久链接至目标"></a></dt>
<dd><em class="refcount">Return value: New reference.</em><p>为给定的 <em>encoding</em> 获取一个解码器函数。</p>
</dd></dl>
<dl class="function">
<dt id="c.PyCodec_IncrementalEncoder">
<a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a>* <code class="sig-name descname">PyCodec_IncrementalEncoder</code><span class="sig-paren">(</span>const char<em> *encoding</em>, const char<em> *errors</em><span class="sig-paren">)</span><a class="headerlink" href="#c.PyCodec_IncrementalEncoder" title="永久链接至目标"></a></dt>
<dd><em class="refcount">Return value: New reference.</em><p>为给定的 <em>encoding</em> 获取一个 <a class="reference internal" href="../library/codecs.html#codecs.IncrementalEncoder" title="codecs.IncrementalEncoder"><code class="xref py py-class docutils literal notranslate"><span class="pre">IncrementalEncoder</span></code></a> 对象。</p>
</dd></dl>
<dl class="function">
<dt id="c.PyCodec_IncrementalDecoder">
<a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a>* <code class="sig-name descname">PyCodec_IncrementalDecoder</code><span class="sig-paren">(</span>const char<em> *encoding</em>, const char<em> *errors</em><span class="sig-paren">)</span><a class="headerlink" href="#c.PyCodec_IncrementalDecoder" title="永久链接至目标"></a></dt>
<dd><em class="refcount">Return value: New reference.</em><p>为给定的 <em>encoding</em> 获取一个 <a class="reference internal" href="../library/codecs.html#codecs.IncrementalDecoder" title="codecs.IncrementalDecoder"><code class="xref py py-class docutils literal notranslate"><span class="pre">IncrementalDecoder</span></code></a> 对象。</p>
</dd></dl>
<dl class="function">
<dt id="c.PyCodec_StreamReader">
<a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a>* <code class="sig-name descname">PyCodec_StreamReader</code><span class="sig-paren">(</span>const char<em> *encoding</em>, <a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a><em> *stream</em>, const char<em> *errors</em><span class="sig-paren">)</span><a class="headerlink" href="#c.PyCodec_StreamReader" title="永久链接至目标"></a></dt>
<dd><em class="refcount">Return value: New reference.</em><p>为给定的 <em>encoding</em> 获取一个 <a class="reference internal" href="../library/codecs.html#codecs.StreamReader" title="codecs.StreamReader"><code class="xref py py-class docutils literal notranslate"><span class="pre">StreamReader</span></code></a> 工厂函数。</p>
</dd></dl>
<dl class="function">
<dt id="c.PyCodec_StreamWriter">
<a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a>* <code class="sig-name descname">PyCodec_StreamWriter</code><span class="sig-paren">(</span>const char<em> *encoding</em>, <a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a><em> *stream</em>, const char<em> *errors</em><span class="sig-paren">)</span><a class="headerlink" href="#c.PyCodec_StreamWriter" title="永久链接至目标"></a></dt>
<dd><em class="refcount">Return value: New reference.</em><p>为给定的 <em>encoding</em> 获取一个 <a class="reference internal" href="../library/codecs.html#codecs.StreamWriter" title="codecs.StreamWriter"><code class="xref py py-class docutils literal notranslate"><span class="pre">StreamWriter</span></code></a> 工厂函数。</p>
</dd></dl>
</section>
<section id="registry-api-for-unicode-encoding-error-handlers">
<h2>用于Unicode编码错误处理程序的注册表API<a class="headerlink" href="#registry-api-for-unicode-encoding-error-handlers" title="永久链接至标题"></a></h2>
<dl class="function">
<dt id="c.PyCodec_RegisterError">
int <code class="sig-name descname">PyCodec_RegisterError</code><span class="sig-paren">(</span>const char<em> *name</em>, <a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a><em> *error</em><span class="sig-paren">)</span><a class="headerlink" href="#c.PyCodec_RegisterError" title="永久链接至目标"></a></dt>
<dd><p>在给定的 <em>name</em> 之下注册错误处理回调函数 <em>error</em>。 该回调函数将在一个编解码器遇到无法编码的字符/无法解码的字节数据并且 <em>name</em> 被指定为 encode/decode 函数调用的 error 形参时由该编解码器来调用。</p>
<p>该回调函数会接受一个 <a class="reference internal" href="../library/exceptions.html#UnicodeEncodeError" title="UnicodeEncodeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">UnicodeEncodeError</span></code></a>, <a class="reference internal" href="../library/exceptions.html#UnicodeDecodeError" title="UnicodeDecodeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">UnicodeDecodeError</span></code></a><a class="reference internal" href="../library/exceptions.html#UnicodeTranslateError" title="UnicodeTranslateError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">UnicodeTranslateError</span></code></a> 的实例作为单独参数,其中包含关于有问题字符或字节序列及其在原始序列的偏移量信息(请参阅 <a class="reference internal" href="exceptions.html#unicodeexceptions"><span class="std std-ref">Unicode 异常对象</span></a> 了解提取此信息的函数详情)。 该回调函数必须引发给定的异常,或者返回一个包含有问题序列及相应替换序列的二元组,以及一个表示偏移量的整数,该整数指明应在什么位置上恢复编码/解码操作。</p>
<p>成功则返回``0`` ,失败则返回``-1``</p>
</dd></dl>
<dl class="function">
<dt id="c.PyCodec_LookupError">
<a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a>* <code class="sig-name descname">PyCodec_LookupError</code><span class="sig-paren">(</span>const char<em> *name</em><span class="sig-paren">)</span><a class="headerlink" href="#c.PyCodec_LookupError" title="永久链接至目标"></a></dt>
<dd><em class="refcount">Return value: New reference.</em><p>查找在 <em>name</em> 之下注册的错误处理回调函数。 作为特例还可以传入 <code class="docutils literal notranslate"><span class="pre">NULL</span></code>,在此情况下将返回针对 &quot;strict&quot; 的错误处理回调函数。</p>
</dd></dl>
<dl class="function">
<dt id="c.PyCodec_StrictErrors">
<a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a>* <code class="sig-name descname">PyCodec_StrictErrors</code><span class="sig-paren">(</span><a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a><em> *exc</em><span class="sig-paren">)</span><a class="headerlink" href="#c.PyCodec_StrictErrors" title="永久链接至目标"></a></dt>
<dd><em class="refcount">Return value: Always NULL.</em><p>引发 <em>exc</em> 作为异常。</p>
</dd></dl>
<dl class="function">
<dt id="c.PyCodec_IgnoreErrors">
<a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a>* <code class="sig-name descname">PyCodec_IgnoreErrors</code><span class="sig-paren">(</span><a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a><em> *exc</em><span class="sig-paren">)</span><a class="headerlink" href="#c.PyCodec_IgnoreErrors" title="永久链接至目标"></a></dt>
<dd><em class="refcount">Return value: New reference.</em><p>忽略 unicode 错误,跳过错误的输入。</p>
</dd></dl>
<dl class="function">
<dt id="c.PyCodec_ReplaceErrors">
<a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a>* <code class="sig-name descname">PyCodec_ReplaceErrors</code><span class="sig-paren">(</span><a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a><em> *exc</em><span class="sig-paren">)</span><a class="headerlink" href="#c.PyCodec_ReplaceErrors" title="永久链接至目标"></a></dt>
<dd><em class="refcount">Return value: New reference.</em><p>使用 <code class="docutils literal notranslate"><span class="pre">?</span></code><code class="docutils literal notranslate"><span class="pre">U+FFFD</span></code> 替换 unicode 编码错误。</p>
</dd></dl>
<dl class="function">
<dt id="c.PyCodec_XMLCharRefReplaceErrors">
<a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a>* <code class="sig-name descname">PyCodec_XMLCharRefReplaceErrors</code><span class="sig-paren">(</span><a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a><em> *exc</em><span class="sig-paren">)</span><a class="headerlink" href="#c.PyCodec_XMLCharRefReplaceErrors" title="永久链接至目标"></a></dt>
<dd><em class="refcount">Return value: New reference.</em><p>使用 XML 字符引用替换 unicode 编码错误。</p>
</dd></dl>
<dl class="function">
<dt id="c.PyCodec_BackslashReplaceErrors">
<a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a>* <code class="sig-name descname">PyCodec_BackslashReplaceErrors</code><span class="sig-paren">(</span><a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a><em> *exc</em><span class="sig-paren">)</span><a class="headerlink" href="#c.PyCodec_BackslashReplaceErrors" title="永久链接至目标"></a></dt>
<dd><em class="refcount">Return value: New reference.</em><p>使用反斜杠转义符 (<code class="docutils literal notranslate"><span class="pre">\x</span></code>, <code class="docutils literal notranslate"><span class="pre">\u</span></code><code class="docutils literal notranslate"><span class="pre">\U</span></code>) 替换 unicode 编码错误。</p>
</dd></dl>
<dl class="function">
<dt id="c.PyCodec_NameReplaceErrors">
<a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a>* <code class="sig-name descname">PyCodec_NameReplaceErrors</code><span class="sig-paren">(</span><a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a><em> *exc</em><span class="sig-paren">)</span><a class="headerlink" href="#c.PyCodec_NameReplaceErrors" title="永久链接至目标"></a></dt>
<dd><em class="refcount">Return value: New reference.</em><p>使用 <code class="docutils literal notranslate"><span class="pre">\N{...}</span></code> 转义符替换 unicode 编码错误。</p>
<div class="versionadded">
<p><span class="versionmodified added">3.5 新版功能.</span></p>
</div>
</dd></dl>
</section>
</section>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<h3><a href="../contents.html">目录</a></h3>
<ul>
<li><a class="reference internal" href="#">编解码器注册与支持功能</a><ul>
<li><a class="reference internal" href="#codec-lookup-api">Codec 查找API</a></li>
<li><a class="reference internal" href="#registry-api-for-unicode-encoding-error-handlers">用于Unicode编码错误处理程序的注册表API</a></li>
</ul>
</li>
</ul>
<h4>上一个主题</h4>
<p class="topless"><a href="reflection.html"
title="上一章">反射</a></p>
<h4>下一个主题</h4>
<p class="topless"><a href="abstract.html"
title="下一章">抽象对象层</a></p>
<div role="note" aria-label="source link">
<h3>本页</h3>
<ul class="this-page-menu">
<li><a href="../bugs.html">报告 Bug</a></li>
<li>
<a href="https://github.com/python/cpython/blob/3.8/Doc/c-api/codec.rst"
rel="nofollow">显示源代码
</a>
</li>
</ul>
</div>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="related" role="navigation" aria-label="related navigation">
<h3>导航</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="总目录"
>索引</a></li>
<li class="right" >
<a href="../py-modindex.html" title="Python 模块索引"
>模块</a> |</li>
<li class="right" >
<a href="abstract.html" title="抽象对象层"
>下一页</a> |</li>
<li class="right" >
<a href="reflection.html" title="反射"
>上一页</a> |</li>
<li><img src="../_static/py.svg" alt="python logo" style="vertical-align: middle; margin-top: -1px"/></li>
<li><a href="https://www.python.org/">Python</a> &#187;</li>
<li class="switchers">
<div class="language_switcher_placeholder"></div>
<div class="version_switcher_placeholder"></div>
</li>
<li>
</li>
<li id="cpython-language-and-version">
<a href="../index.html">3.8.20 Documentation</a> &#187;
</li>
<li class="nav-item nav-item-1"><a href="index.html" >Python/C API 参考手册</a> &#187;</li>
<li class="nav-item nav-item-2"><a href="utilities.html" >工具</a> &#187;</li>
<li class="right">
<div class="inline-search" role="search">
<form class="inline-search" action="../search.html" method="get">
<input placeholder="快速搜索" aria-label="快速搜索" type="text" name="q" />
<input type="submit" value="转向" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
|
</li>
</ul>
</div>
<div class="footer">
&copy; <a href="../copyright.html">版权所有</a> 2001-2024, Python Software Foundation.
<br />
This page is licensed under the Python Software Foundation License Version 2.
<br />
Examples, recipes, and other code in the documentation are additionally licensed under the Zero Clause BSD License.
<br />
<br />
The Python Software Foundation is a non-profit corporation.
<a href="https://www.python.org/psf/donations/">Please donate.</a>
<br />
<br />
最后更新于 12月 09, 2024.
<a href="https://docs.python.org/3/bugs.html">Found a bug</a>?
<br />
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 2.4.4.
</div>
</body>
</html>