514 lines
30 KiB
HTML
514 lines
30 KiB
HTML
|
||
<!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 ——访问编译器的符号表 — 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> »</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> »
|
||
</li>
|
||
|
||
<li class="nav-item nav-item-1"><a href="index.html" >Python 标准库</a> »</li>
|
||
<li class="nav-item nav-item-2"><a href="language.html" accesskey="U">Python 语言服务</a> »</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">>>> </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">"def some_func(): pass"</span><span class="p">,</span> <span class="s2">"string"</span><span class="p">,</span> <span class="s2">"exec"</span><span class="p">)</span>
|
||
<span class="gp">>>> </span><span class="n">table</span><span class="o">.</span><span class="n">lookup</span><span class="p">(</span><span class="s2">"some_func"</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> »</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> »
|
||
</li>
|
||
|
||
<li class="nav-item nav-item-1"><a href="index.html" >Python 标准库</a> »</li>
|
||
<li class="nav-item nav-item-2"><a href="language.html" >Python 语言服务</a> »</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">
|
||
© <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> |