Files
hustoj/web/python-docs/library/symtable.html
2025-03-09 17:10:56 +08:00

514 lines
30 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
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>symtable ——访问编译器的符号表 &#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="symbol --- 与 Python 解析树一起使用的常量" href="symbol.html" />
<link rel="prev" title="ast --- 抽象语法树" href="ast.html" />
<link rel="canonical" href="https://docs.python.org/3/library/symtable.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="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">symtable</span></code> ——访问编译器的符号表</a><ul>
<li><a class="reference internal" href="#generating-symbol-tables">符号表的生成</a></li>
<li><a class="reference internal" href="#examining-symbol-tables">符号表的查看</a></li>
</ul>
</li>
</ul>
<h4>上一个主题</h4>
<p class="topless"><a href="ast.html"
title="上一章"><code class="xref py py-mod docutils literal notranslate"><span class="pre">ast</span></code> --- 抽象语法树</a></p>
<h4>下一个主题</h4>
<p class="topless"><a href="symbol.html"
title="下一章"><code class="xref py py-mod docutils literal notranslate"><span class="pre">symbol</span></code> --- 与 Python 解析树一起使用的常量</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/library/symtable.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/library/symtable.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="symbol.html" title="symbol --- 与 Python 解析树一起使用的常量"
accesskey="N">下一页</a> |</li>
<li class="right" >
<a href="ast.html" title="ast --- 抽象语法树"
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 标准库</a> &#187;</li>
<li class="nav-item nav-item-2"><a href="language.html" accesskey="U">Python 语言服务</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="module-symtable">
<span id="symtable-access-to-the-compiler-s-symbol-tables"></span><h1><a class="reference internal" href="#module-symtable" title="symtable: Interface to the compiler's internal symbol tables."><code class="xref py py-mod docutils literal notranslate"><span class="pre">symtable</span></code></a> ——访问编译器的符号表<a class="headerlink" href="#module-symtable" title="永久链接至标题"></a></h1>
<p><strong>Source code</strong> <a class="reference external" href="https://github.com/python/cpython/tree/3.8/Lib/symtable.py">Lib/symtable.py</a></p>
<hr class="docutils" />
<p>符号表由编译器在生成字节码之前根据 AST 生成。符号表负责计算代码中每个标识符的作用域。 <a class="reference internal" href="#module-symtable" title="symtable: Interface to the compiler's internal symbol tables."><code class="xref py py-mod docutils literal notranslate"><span class="pre">symtable</span></code></a> 提供了一个查看这些表的接口。</p>
<section id="generating-symbol-tables">
<h2>符号表的生成<a class="headerlink" href="#generating-symbol-tables" title="永久链接至标题"></a></h2>
<dl class="function">
<dt id="symtable.symtable">
<code class="sig-prename descclassname">symtable.</code><code class="sig-name descname">symtable</code><span class="sig-paren">(</span><em class="sig-param">code</em>, <em class="sig-param">filename</em>, <em class="sig-param">compile_type</em><span class="sig-paren">)</span><a class="headerlink" href="#symtable.symtable" title="永久链接至目标"></a></dt>
<dd><p>返回 Python 源 <em>代码</em> 顶层的 <a class="reference internal" href="#symtable.SymbolTable" title="symtable.SymbolTable"><code class="xref py py-class docutils literal notranslate"><span class="pre">SymbolTable</span></code></a><em>filename</em> 是代码文件名。 <em>compile_type</em> 的含义类似 <a class="reference internal" href="functions.html#compile" title="compile"><code class="xref py py-func docutils literal notranslate"><span class="pre">compile()</span></code></a><em>mode</em> 参数。</p>
</dd></dl>
</section>
<section id="examining-symbol-tables">
<h2>符号表的查看<a class="headerlink" href="#examining-symbol-tables" title="永久链接至标题"></a></h2>
<dl class="class">
<dt id="symtable.SymbolTable">
<em class="property">class </em><code class="sig-prename descclassname">symtable.</code><code class="sig-name descname">SymbolTable</code><a class="headerlink" href="#symtable.SymbolTable" title="永久链接至目标"></a></dt>
<dd><p>某个代码块的命名空间表。构造函数不公开。</p>
<dl class="method">
<dt id="symtable.SymbolTable.get_type">
<code class="sig-name descname">get_type</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#symtable.SymbolTable.get_type" title="永久链接至目标"></a></dt>
<dd><p>返回符号表的类型。可能是 <code class="docutils literal notranslate"><span class="pre">'class'</span></code><code class="docutils literal notranslate"><span class="pre">'module'</span></code><code class="docutils literal notranslate"><span class="pre">'function'</span></code></p>
</dd></dl>
<dl class="method">
<dt id="symtable.SymbolTable.get_id">
<code class="sig-name descname">get_id</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#symtable.SymbolTable.get_id" title="永久链接至目标"></a></dt>
<dd><p>返回符号表的标识符</p>
</dd></dl>
<dl class="method">
<dt id="symtable.SymbolTable.get_name">
<code class="sig-name descname">get_name</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#symtable.SymbolTable.get_name" title="永久链接至目标"></a></dt>
<dd><p>返回符号表的名称。 若为类的符号表则返回类名;若为函数的符号表则为函数名;若是全局符号表则为 <code class="docutils literal notranslate"><span class="pre">'top'</span></code> (<a class="reference internal" href="#symtable.SymbolTable.get_type" title="symtable.SymbolTable.get_type"><code class="xref py py-meth docutils literal notranslate"><span class="pre">get_type()</span></code></a> 返回 <code class="docutils literal notranslate"><span class="pre">'module'</span></code>)。</p>
</dd></dl>
<dl class="method">
<dt id="symtable.SymbolTable.get_lineno">
<code class="sig-name descname">get_lineno</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#symtable.SymbolTable.get_lineno" title="永久链接至目标"></a></dt>
<dd><p>返回符号表所代表的代码块中第一行的编号。</p>
</dd></dl>
<dl class="method">
<dt id="symtable.SymbolTable.is_optimized">
<code class="sig-name descname">is_optimized</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#symtable.SymbolTable.is_optimized" title="永久链接至目标"></a></dt>
<dd><p>如果符号表中的局部变量可能被优化过,则返回 <code class="docutils literal notranslate"><span class="pre">True</span></code></p>
</dd></dl>
<dl class="method">
<dt id="symtable.SymbolTable.is_nested">
<code class="sig-name descname">is_nested</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#symtable.SymbolTable.is_nested" title="永久链接至目标"></a></dt>
<dd><p>如果代码块是嵌套类或函数,则返回 <code class="docutils literal notranslate"><span class="pre">True</span></code></p>
</dd></dl>
<dl class="method">
<dt id="symtable.SymbolTable.has_children">
<code class="sig-name descname">has_children</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#symtable.SymbolTable.has_children" title="永久链接至目标"></a></dt>
<dd><p>如果代码块中有嵌套的命名空间,则返回 <code class="docutils literal notranslate"><span class="pre">True</span></code>。可通过 <a class="reference internal" href="#symtable.SymbolTable.get_children" title="symtable.SymbolTable.get_children"><code class="xref py py-meth docutils literal notranslate"><span class="pre">get_children()</span></code></a> 读取。</p>
</dd></dl>
<dl class="method">
<dt id="symtable.SymbolTable.has_exec">
<code class="sig-name descname">has_exec</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#symtable.SymbolTable.has_exec" title="永久链接至目标"></a></dt>
<dd><p>Return <code class="docutils literal notranslate"><span class="pre">True</span></code> if the block uses <code class="docutils literal notranslate"><span class="pre">exec</span></code>.</p>
</dd></dl>
<dl class="method">
<dt id="symtable.SymbolTable.get_identifiers">
<code class="sig-name descname">get_identifiers</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#symtable.SymbolTable.get_identifiers" title="永久链接至目标"></a></dt>
<dd><p>返回符号表中的符号名列表。</p>
</dd></dl>
<dl class="method">
<dt id="symtable.SymbolTable.lookup">
<code class="sig-name descname">lookup</code><span class="sig-paren">(</span><em class="sig-param">name</em><span class="sig-paren">)</span><a class="headerlink" href="#symtable.SymbolTable.lookup" title="永久链接至目标"></a></dt>
<dd><p>在符号表中查找 <em>name</em> 并返回一个 <a class="reference internal" href="#symtable.Symbol" title="symtable.Symbol"><code class="xref py py-class docutils literal notranslate"><span class="pre">Symbol</span></code></a> 实例。</p>
</dd></dl>
<dl class="method">
<dt id="symtable.SymbolTable.get_symbols">
<code class="sig-name descname">get_symbols</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#symtable.SymbolTable.get_symbols" title="永久链接至目标"></a></dt>
<dd><p>返回符号表中所有符号的 <a class="reference internal" href="#symtable.Symbol" title="symtable.Symbol"><code class="xref py py-class docutils literal notranslate"><span class="pre">Symbol</span></code></a> 实例的列表。</p>
</dd></dl>
<dl class="method">
<dt id="symtable.SymbolTable.get_children">
<code class="sig-name descname">get_children</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#symtable.SymbolTable.get_children" title="永久链接至目标"></a></dt>
<dd><p>返回嵌套符号表的列表。</p>
</dd></dl>
</dd></dl>
<dl class="class">
<dt id="symtable.Function">
<em class="property">class </em><code class="sig-prename descclassname">symtable.</code><code class="sig-name descname">Function</code><a class="headerlink" href="#symtable.Function" title="永久链接至目标"></a></dt>
<dd><p>函数或方法的命名空间。该类继承自 <a class="reference internal" href="#symtable.SymbolTable" title="symtable.SymbolTable"><code class="xref py py-class docutils literal notranslate"><span class="pre">SymbolTable</span></code></a></p>
<dl class="method">
<dt id="symtable.Function.get_parameters">
<code class="sig-name descname">get_parameters</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#symtable.Function.get_parameters" title="永久链接至目标"></a></dt>
<dd><p>返回由函数的参数名组成的元组。</p>
</dd></dl>
<dl class="method">
<dt id="symtable.Function.get_locals">
<code class="sig-name descname">get_locals</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#symtable.Function.get_locals" title="永久链接至目标"></a></dt>
<dd><p>返回函数中局部变量名组成的元组。</p>
</dd></dl>
<dl class="method">
<dt id="symtable.Function.get_globals">
<code class="sig-name descname">get_globals</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#symtable.Function.get_globals" title="永久链接至目标"></a></dt>
<dd><p>返回函数中全局变量名组成的元组。</p>
</dd></dl>
<dl class="method">
<dt id="symtable.Function.get_nonlocals">
<code class="sig-name descname">get_nonlocals</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#symtable.Function.get_nonlocals" title="永久链接至目标"></a></dt>
<dd><p>返回函数中非局部变量名组成的元组。</p>
</dd></dl>
<dl class="method">
<dt id="symtable.Function.get_frees">
<code class="sig-name descname">get_frees</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#symtable.Function.get_frees" title="永久链接至目标"></a></dt>
<dd><p>返回函数中自由变量名组成的元组。</p>
</dd></dl>
</dd></dl>
<dl class="class">
<dt id="symtable.Class">
<em class="property">class </em><code class="sig-prename descclassname">symtable.</code><code class="sig-name descname">Class</code><a class="headerlink" href="#symtable.Class" title="永久链接至目标"></a></dt>
<dd><p>类的命名空间。继承自 <a class="reference internal" href="#symtable.SymbolTable" title="symtable.SymbolTable"><code class="xref py py-class docutils literal notranslate"><span class="pre">SymbolTable</span></code></a></p>
<dl class="method">
<dt id="symtable.Class.get_methods">
<code class="sig-name descname">get_methods</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#symtable.Class.get_methods" title="永久链接至目标"></a></dt>
<dd><p>返回类中声明的方法名组成的元组。</p>
</dd></dl>
</dd></dl>
<dl class="class">
<dt id="symtable.Symbol">
<em class="property">class </em><code class="sig-prename descclassname">symtable.</code><code class="sig-name descname">Symbol</code><a class="headerlink" href="#symtable.Symbol" title="永久链接至目标"></a></dt>
<dd><p><a class="reference internal" href="#symtable.SymbolTable" title="symtable.SymbolTable"><code class="xref py py-class docutils literal notranslate"><span class="pre">SymbolTable</span></code></a> 中的数据项,对应于源码中的某个标识符。构造函数不公开。</p>
<dl class="method">
<dt id="symtable.Symbol.get_name">
<code class="sig-name descname">get_name</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#symtable.Symbol.get_name" title="永久链接至目标"></a></dt>
<dd><p>返回符号名</p>
</dd></dl>
<dl class="method">
<dt id="symtable.Symbol.is_referenced">
<code class="sig-name descname">is_referenced</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#symtable.Symbol.is_referenced" title="永久链接至目标"></a></dt>
<dd><p>如果符号在代码块中被引用了,则返回 <code class="docutils literal notranslate"><span class="pre">True</span></code></p>
</dd></dl>
<dl class="method">
<dt id="symtable.Symbol.is_imported">
<code class="sig-name descname">is_imported</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#symtable.Symbol.is_imported" title="永久链接至目标"></a></dt>
<dd><p>如果符号是由导入语句创建的,则返回 <code class="docutils literal notranslate"><span class="pre">True</span></code></p>
</dd></dl>
<dl class="method">
<dt id="symtable.Symbol.is_parameter">
<code class="sig-name descname">is_parameter</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#symtable.Symbol.is_parameter" title="永久链接至目标"></a></dt>
<dd><p>如果符号是参数,返回 <code class="docutils literal notranslate"><span class="pre">True</span></code></p>
</dd></dl>
<dl class="method">
<dt id="symtable.Symbol.is_global">
<code class="sig-name descname">is_global</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#symtable.Symbol.is_global" title="永久链接至目标"></a></dt>
<dd><p>如果符号是全局变量,则返回 <code class="docutils literal notranslate"><span class="pre">True</span></code></p>
</dd></dl>
<dl class="method">
<dt id="symtable.Symbol.is_nonlocal">
<code class="sig-name descname">is_nonlocal</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#symtable.Symbol.is_nonlocal" title="永久链接至目标"></a></dt>
<dd><p>如果符号为非局部变量,则返回 <code class="docutils literal notranslate"><span class="pre">True</span></code></p>
</dd></dl>
<dl class="method">
<dt id="symtable.Symbol.is_declared_global">
<code class="sig-name descname">is_declared_global</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#symtable.Symbol.is_declared_global" title="永久链接至目标"></a></dt>
<dd><p>如果符号用 global 声明为全局变量,则返回 <code class="docutils literal notranslate"><span class="pre">True</span></code></p>
</dd></dl>
<dl class="method">
<dt id="symtable.Symbol.is_local">
<code class="sig-name descname">is_local</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#symtable.Symbol.is_local" title="永久链接至目标"></a></dt>
<dd><p>如果符号在代码块内是局部变量,则返回 <code class="docutils literal notranslate"><span class="pre">True</span></code></p>
</dd></dl>
<dl class="method">
<dt id="symtable.Symbol.is_annotated">
<code class="sig-name descname">is_annotated</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#symtable.Symbol.is_annotated" title="永久链接至目标"></a></dt>
<dd><p>如果符号带有注解,则返回 <code class="docutils literal notranslate"><span class="pre">True</span></code></p>
<div class="versionadded">
<p><span class="versionmodified added">3.6 新版功能.</span></p>
</div>
</dd></dl>
<dl class="method">
<dt id="symtable.Symbol.is_free">
<code class="sig-name descname">is_free</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#symtable.Symbol.is_free" title="永久链接至目标"></a></dt>
<dd><p>如果符号在代码块中被引用,但未赋值,则返回 <code class="docutils literal notranslate"><span class="pre">True</span></code></p>
</dd></dl>
<dl class="method">
<dt id="symtable.Symbol.is_assigned">
<code class="sig-name descname">is_assigned</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#symtable.Symbol.is_assigned" title="永久链接至目标"></a></dt>
<dd><p>如果符号在代码块中赋值,则返回 <code class="docutils literal notranslate"><span class="pre">True</span></code></p>
</dd></dl>
<dl class="method">
<dt id="symtable.Symbol.is_namespace">
<code class="sig-name descname">is_namespace</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#symtable.Symbol.is_namespace" title="永久链接至目标"></a></dt>
<dd><p>如果符号名绑定引入了新的命名空间,则返回 <code class="docutils literal notranslate"><span class="pre">True</span></code></p>
<p>如果符号名用于 function 或 class 语句,则为 True。</p>
<p>例如</p>
<div class="highlight-python3 notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">table</span> <span class="o">=</span> <span class="n">symtable</span><span class="o">.</span><span class="n">symtable</span><span class="p">(</span><span class="s2">&quot;def some_func(): pass&quot;</span><span class="p">,</span> <span class="s2">&quot;string&quot;</span><span class="p">,</span> <span class="s2">&quot;exec&quot;</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">table</span><span class="o">.</span><span class="n">lookup</span><span class="p">(</span><span class="s2">&quot;some_func&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">is_namespace</span><span class="p">()</span>
<span class="go">True</span>
</pre></div>
</div>
<p>注意,一个符号名可以与多个对象绑定。如果结果为 <code class="docutils literal notranslate"><span class="pre">True</span></code>,则该符号名还可以绑定到其他对象上,比如 int 或 list ,且不会引入新的命名空间。</p>
</dd></dl>
<dl class="method">
<dt id="symtable.Symbol.get_namespaces">
<code class="sig-name descname">get_namespaces</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#symtable.Symbol.get_namespaces" title="永久链接至目标"></a></dt>
<dd><p>返回与符号名绑定的命名空间的列表。</p>
</dd></dl>
<dl class="method">
<dt id="symtable.Symbol.get_namespace">
<code class="sig-name descname">get_namespace</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#symtable.Symbol.get_namespace" title="永久链接至目标"></a></dt>
<dd><p>返回与符号名绑定的命名空间。如果绑定的命名空间超过一个,则会触发 <a class="reference internal" href="exceptions.html#ValueError" title="ValueError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ValueError</span></code></a></p>
</dd></dl>
</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="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">symtable</span></code> ——访问编译器的符号表</a><ul>
<li><a class="reference internal" href="#generating-symbol-tables">符号表的生成</a></li>
<li><a class="reference internal" href="#examining-symbol-tables">符号表的查看</a></li>
</ul>
</li>
</ul>
<h4>上一个主题</h4>
<p class="topless"><a href="ast.html"
title="上一章"><code class="xref py py-mod docutils literal notranslate"><span class="pre">ast</span></code> --- 抽象语法树</a></p>
<h4>下一个主题</h4>
<p class="topless"><a href="symbol.html"
title="下一章"><code class="xref py py-mod docutils literal notranslate"><span class="pre">symbol</span></code> --- 与 Python 解析树一起使用的常量</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/library/symtable.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="symbol.html" title="symbol --- 与 Python 解析树一起使用的常量"
>下一页</a> |</li>
<li class="right" >
<a href="ast.html" title="ast --- 抽象语法树"
>上一页</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 标准库</a> &#187;</li>
<li class="nav-item nav-item-2"><a href="language.html" >Python 语言服务</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>