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

300 lines
17 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.
This file contains Unicode characters that might be confused with other characters. 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="file.html" />
<link rel="prev" title="Cell 对象" href="cell.html" />
<link rel="canonical" href="https://docs.python.org/3/c-api/code.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>
<h4>上一个主题</h4>
<p class="topless"><a href="cell.html"
title="上一章">Cell 对象</a></p>
<h4>下一个主题</h4>
<p class="topless"><a href="file.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/code.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/code.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="file.html" title="文件对象"
accesskey="N">下一页</a> |</li>
<li class="right" >
<a href="cell.html" title="Cell 对象"
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="concrete.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">
<span class="target" id="codeobjects"></span><section id="code-objects">
<span id="index-0"></span><h1>代码对象<a class="headerlink" href="#code-objects" title="永久链接至标题"></a></h1>
<p>代码对象是 CPython 实现的低层级细节。 每个代表一块尚未绑定到函数中的可执行代码。</p>
<dl class="type">
<dt id="c.PyCodeObject">
<code class="sig-name descname">PyCodeObject</code><a class="headerlink" href="#c.PyCodeObject" title="永久链接至目标"></a></dt>
<dd><p>用于描述代码对象的对象的 C 结构。 此类型字段可随时更改。</p>
</dd></dl>
<dl class="var">
<dt id="c.PyCode_Type">
<a class="reference internal" href="type.html#c.PyTypeObject" title="PyTypeObject">PyTypeObject</a> <code class="sig-name descname">PyCode_Type</code><a class="headerlink" href="#c.PyCode_Type" title="永久链接至目标"></a></dt>
<dd><p>这是一个 <a class="reference internal" href="type.html#c.PyTypeObject" title="PyTypeObject"><code class="xref c c-type docutils literal notranslate"><span class="pre">PyTypeObject</span></code></a> 实例其表示Python的 <a class="reference internal" href="../library/code.html#module-code" title="code: Facilities to implement read-eval-print loops."><code class="xref py py-class docutils literal notranslate"><span class="pre">code</span></code></a> 类型。</p>
</dd></dl>
<dl class="function">
<dt id="c.PyCode_Check">
int <code class="sig-name descname">PyCode_Check</code><span class="sig-paren">(</span><a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a><em> *co</em><span class="sig-paren">)</span><a class="headerlink" href="#c.PyCode_Check" title="永久链接至目标"></a></dt>
<dd><p>如果 <em>co</em> 是一个 <a class="reference internal" href="../library/code.html#module-code" title="code: Facilities to implement read-eval-print loops."><code class="xref py py-class docutils literal notranslate"><span class="pre">code</span></code></a> 对象则返回 true。</p>
</dd></dl>
<dl class="function">
<dt id="c.PyCode_GetNumFree">
int <code class="sig-name descname">PyCode_GetNumFree</code><span class="sig-paren">(</span><a class="reference internal" href="#c.PyCodeObject" title="PyCodeObject">PyCodeObject</a><em> *co</em><span class="sig-paren">)</span><a class="headerlink" href="#c.PyCode_GetNumFree" title="永久链接至目标"></a></dt>
<dd><p>返回 <em>co</em> 中的自由变量数。</p>
</dd></dl>
<dl class="function">
<dt id="c.PyCode_New">
<a class="reference internal" href="#c.PyCodeObject" title="PyCodeObject">PyCodeObject</a>* <code class="sig-name descname">PyCode_New</code><span class="sig-paren">(</span>int<em> argcount</em>, int<em> kwonlyargcount</em>, int<em> nlocals</em>, int<em> stacksize</em>, int<em> flags</em>, <a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a><em> *code</em>, <a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a><em> *consts</em>, <a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a><em> *names</em>, <a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a><em> *varnames</em>, <a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a><em> *freevars</em>, <a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a><em> *cellvars</em>, <a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a><em> *filename</em>, <a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a><em> *name</em>, int<em> firstlineno</em>, <a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a><em> *lnotab</em><span class="sig-paren">)</span><a class="headerlink" href="#c.PyCode_New" title="永久链接至目标"></a></dt>
<dd><em class="refcount">Return value: New reference.</em><p>返回一个新的代码对象。 如果你需要一个虚拟代码对象来创建一个代码帧,请使用 <a class="reference internal" href="#c.PyCode_NewEmpty" title="PyCode_NewEmpty"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyCode_NewEmpty()</span></code></a>。 调用 <a class="reference internal" href="#c.PyCode_New" title="PyCode_New"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyCode_New()</span></code></a> 直接可以绑定到准确的 Python 版本,因为字节码的定义经常变化。</p>
</dd></dl>
<dl class="function">
<dt id="c.PyCode_NewWithPosOnlyArgs">
<a class="reference internal" href="#c.PyCodeObject" title="PyCodeObject">PyCodeObject</a>* <code class="sig-name descname">PyCode_NewWithPosOnlyArgs</code><span class="sig-paren">(</span>int<em> argcount</em>, int<em> posonlyargcount</em>, int<em> kwonlyargcount</em>, int<em> nlocals</em>, int<em> stacksize</em>, int<em> flags</em>, <a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a><em> *code</em>, <a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a><em> *consts</em>, <a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a><em> *names</em>, <a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a><em> *varnames</em>, <a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a><em> *freevars</em>, <a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a><em> *cellvars</em>, <a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a><em> *filename</em>, <a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a><em> *name</em>, int<em> firstlineno</em>, <a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a><em> *lnotab</em><span class="sig-paren">)</span><a class="headerlink" href="#c.PyCode_NewWithPosOnlyArgs" title="永久链接至目标"></a></dt>
<dd><em class="refcount">Return value: New reference.</em><p>类似于 <a class="reference internal" href="#c.PyCode_New" title="PyCode_New"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyCode_New()</span></code></a>,但带有一个额外的 &quot;posonlyargcount&quot; 用于仅限位置参数。</p>
<div class="versionadded">
<p><span class="versionmodified added">3.8 新版功能.</span></p>
</div>
</dd></dl>
<dl class="function">
<dt id="c.PyCode_NewEmpty">
<a class="reference internal" href="#c.PyCodeObject" title="PyCodeObject">PyCodeObject</a>* <code class="sig-name descname">PyCode_NewEmpty</code><span class="sig-paren">(</span>const char<em> *filename</em>, const char<em> *funcname</em>, int<em> firstlineno</em><span class="sig-paren">)</span><a class="headerlink" href="#c.PyCode_NewEmpty" title="永久链接至目标"></a></dt>
<dd><em class="refcount">Return value: New reference.</em><p>返回具有指定文件名、函数名和第一行号的新空代码对象。 对于 <a class="reference internal" href="../library/functions.html#exec" title="exec"><code class="xref py py-func docutils literal notranslate"><span class="pre">exec()</span></code></a><a class="reference internal" href="../library/functions.html#eval" title="eval"><code class="xref py py-func docutils literal notranslate"><span class="pre">eval()</span></code></a> 生成的代码对象是非法的。</p>
</dd></dl>
</section>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<h4>上一个主题</h4>
<p class="topless"><a href="cell.html"
title="上一章">Cell 对象</a></p>
<h4>下一个主题</h4>
<p class="topless"><a href="file.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/code.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="file.html" title="文件对象"
>下一页</a> |</li>
<li class="right" >
<a href="cell.html" title="Cell 对象"
>上一页</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="concrete.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>