gooderp18绿色标准版
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

595 line
37KB

  1. <!DOCTYPE html>
  2. <html lang="en" data-content_root="../">
  3. <head>
  4. <meta charset="utf-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
  6. <meta property="og:title" content="symtable — Access to the compiler’s symbol tables" />
  7. <meta property="og:type" content="website" />
  8. <meta property="og:url" content="https://docs.python.org/3/library/symtable.html" />
  9. <meta property="og:site_name" content="Python documentation" />
  10. <meta property="og:description" content="Source code: Lib/symtable.py Symbol tables are generated by the compiler from AST just before bytecode is generated. The symbol table is responsible for calculating the scope of every identifier in..." />
  11. <meta property="og:image" content="https://docs.python.org/3/_static/og-image.png" />
  12. <meta property="og:image:alt" content="Python documentation" />
  13. <meta name="description" content="Source code: Lib/symtable.py Symbol tables are generated by the compiler from AST just before bytecode is generated. The symbol table is responsible for calculating the scope of every identifier in..." />
  14. <meta property="og:image:width" content="200" />
  15. <meta property="og:image:height" content="200" />
  16. <meta name="theme-color" content="#3776ab" />
  17. <title>symtable — Access to the compiler’s symbol tables &#8212; Python 3.12.3 documentation</title><meta name="viewport" content="width=device-width, initial-scale=1.0">
  18. <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=80d5e7a1" />
  19. <link rel="stylesheet" type="text/css" href="../_static/pydoctheme.css?v=bb723527" />
  20. <link id="pygments_dark_css" media="(prefers-color-scheme: dark)" rel="stylesheet" type="text/css" href="../_static/pygments_dark.css?v=b20cc3f5" />
  21. <script src="../_static/documentation_options.js?v=2c828074"></script>
  22. <script src="../_static/doctools.js?v=888ff710"></script>
  23. <script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
  24. <script src="../_static/sidebar.js"></script>
  25. <link rel="search" type="application/opensearchdescription+xml"
  26. title="Search within Python 3.12.3 documentation"
  27. href="../_static/opensearch.xml"/>
  28. <link rel="author" title="About these documents" href="../about.html" />
  29. <link rel="index" title="Index" href="../genindex.html" />
  30. <link rel="search" title="Search" href="../search.html" />
  31. <link rel="copyright" title="Copyright" href="../copyright.html" />
  32. <link rel="next" title="token — Constants used with Python parse trees" href="token.html" />
  33. <link rel="prev" title="ast — Abstract Syntax Trees" href="ast.html" />
  34. <link rel="canonical" href="https://docs.python.org/3/library/symtable.html" />
  35. <style>
  36. @media only screen {
  37. table.full-width-table {
  38. width: 100%;
  39. }
  40. }
  41. </style>
  42. <link rel="stylesheet" href="../_static/pydoctheme_dark.css" media="(prefers-color-scheme: dark)" id="pydoctheme_dark_css">
  43. <link rel="shortcut icon" type="image/png" href="../_static/py.svg" />
  44. <script type="text/javascript" src="../_static/copybutton.js"></script>
  45. <script type="text/javascript" src="../_static/menu.js"></script>
  46. <script type="text/javascript" src="../_static/search-focus.js"></script>
  47. <script type="text/javascript" src="../_static/themetoggle.js"></script>
  48. </head>
  49. <body>
  50. <div class="mobile-nav">
  51. <input type="checkbox" id="menuToggler" class="toggler__input" aria-controls="navigation"
  52. aria-pressed="false" aria-expanded="false" role="button" aria-label="Menu" />
  53. <nav class="nav-content" role="navigation">
  54. <label for="menuToggler" class="toggler__label">
  55. <span></span>
  56. </label>
  57. <span class="nav-items-wrapper">
  58. <a href="https://www.python.org/" class="nav-logo">
  59. <img src="../_static/py.svg" alt="Python logo"/>
  60. </a>
  61. <span class="version_switcher_placeholder"></span>
  62. <form role="search" class="search" action="../search.html" method="get">
  63. <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" class="search-icon">
  64. <path fill-rule="nonzero" fill="currentColor" 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"></path>
  65. </svg>
  66. <input placeholder="Quick search" aria-label="Quick search" type="search" name="q" />
  67. <input type="submit" value="Go"/>
  68. </form>
  69. </span>
  70. </nav>
  71. <div class="menu-wrapper">
  72. <nav class="menu" role="navigation" aria-label="main navigation">
  73. <div class="language_switcher_placeholder"></div>
  74. <label class="theme-selector-label">
  75. Theme
  76. <select class="theme-selector" oninput="activateTheme(this.value)">
  77. <option value="auto" selected>Auto</option>
  78. <option value="light">Light</option>
  79. <option value="dark">Dark</option>
  80. </select>
  81. </label>
  82. <div>
  83. <h3><a href="../contents.html">Table of Contents</a></h3>
  84. <ul>
  85. <li><a class="reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">symtable</span></code> — Access to the compiler’s symbol tables</a><ul>
  86. <li><a class="reference internal" href="#generating-symbol-tables">Generating Symbol Tables</a></li>
  87. <li><a class="reference internal" href="#examining-symbol-tables">Examining Symbol Tables</a></li>
  88. </ul>
  89. </li>
  90. </ul>
  91. </div>
  92. <div>
  93. <h4>Previous topic</h4>
  94. <p class="topless"><a href="ast.html"
  95. title="previous chapter"><code class="xref py py-mod docutils literal notranslate"><span class="pre">ast</span></code> — Abstract Syntax Trees</a></p>
  96. </div>
  97. <div>
  98. <h4>Next topic</h4>
  99. <p class="topless"><a href="token.html"
  100. title="next chapter"><code class="xref py py-mod docutils literal notranslate"><span class="pre">token</span></code> — Constants used with Python parse trees</a></p>
  101. </div>
  102. <div role="note" aria-label="source link">
  103. <h3>This Page</h3>
  104. <ul class="this-page-menu">
  105. <li><a href="../bugs.html">Report a Bug</a></li>
  106. <li>
  107. <a href="https://github.com/python/cpython/blob/main/Doc/library/symtable.rst"
  108. rel="nofollow">Show Source
  109. </a>
  110. </li>
  111. </ul>
  112. </div>
  113. </nav>
  114. </div>
  115. </div>
  116. <div class="related" role="navigation" aria-label="related navigation">
  117. <h3>Navigation</h3>
  118. <ul>
  119. <li class="right" style="margin-right: 10px">
  120. <a href="../genindex.html" title="General Index"
  121. accesskey="I">index</a></li>
  122. <li class="right" >
  123. <a href="../py-modindex.html" title="Python Module Index"
  124. >modules</a> |</li>
  125. <li class="right" >
  126. <a href="token.html" title="token — Constants used with Python parse trees"
  127. accesskey="N">next</a> |</li>
  128. <li class="right" >
  129. <a href="ast.html" title="ast — Abstract Syntax Trees"
  130. accesskey="P">previous</a> |</li>
  131. <li><img src="../_static/py.svg" alt="Python logo" style="vertical-align: middle; margin-top: -1px"/></li>
  132. <li><a href="https://www.python.org/">Python</a> &#187;</li>
  133. <li class="switchers">
  134. <div class="language_switcher_placeholder"></div>
  135. <div class="version_switcher_placeholder"></div>
  136. </li>
  137. <li>
  138. </li>
  139. <li id="cpython-language-and-version">
  140. <a href="../index.html">3.12.3 Documentation</a> &#187;
  141. </li>
  142. <li class="nav-item nav-item-1"><a href="index.html" >The Python Standard Library</a> &#187;</li>
  143. <li class="nav-item nav-item-2"><a href="language.html" accesskey="U">Python Language Services</a> &#187;</li>
  144. <li class="nav-item nav-item-this"><a href=""><code class="xref py py-mod docutils literal notranslate"><span class="pre">symtable</span></code> — Access to the compiler’s symbol tables</a></li>
  145. <li class="right">
  146. <div class="inline-search" role="search">
  147. <form class="inline-search" action="../search.html" method="get">
  148. <input placeholder="Quick search" aria-label="Quick search" type="search" name="q" id="search-box" />
  149. <input type="submit" value="Go" />
  150. </form>
  151. </div>
  152. |
  153. </li>
  154. <li class="right">
  155. <label class="theme-selector-label">
  156. Theme
  157. <select class="theme-selector" oninput="activateTheme(this.value)">
  158. <option value="auto" selected>Auto</option>
  159. <option value="light">Light</option>
  160. <option value="dark">Dark</option>
  161. </select>
  162. </label> |</li>
  163. </ul>
  164. </div>
  165. <div class="document">
  166. <div class="documentwrapper">
  167. <div class="bodywrapper">
  168. <div class="body" role="main">
  169. <section id="module-symtable">
  170. <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> — Access to the compiler’s symbol tables<a class="headerlink" href="#module-symtable" title="Link to this heading">¶</a></h1>
  171. <p><strong>Source code:</strong> <a class="reference external" href="https://github.com/python/cpython/tree/3.12/Lib/symtable.py">Lib/symtable.py</a></p>
  172. <hr class="docutils" />
  173. <p>Symbol tables are generated by the compiler from AST just before bytecode is
  174. generated. The symbol table is responsible for calculating the scope of every
  175. identifier in the code. <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> provides an interface to examine these
  176. tables.</p>
  177. <section id="generating-symbol-tables">
  178. <h2>Generating Symbol Tables<a class="headerlink" href="#generating-symbol-tables" title="Link to this heading">¶</a></h2>
  179. <dl class="py function">
  180. <dt class="sig sig-object py" id="symtable.symtable">
  181. <span class="sig-prename descclassname"><span class="pre">symtable.</span></span><span class="sig-name descname"><span class="pre">symtable</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">code</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">filename</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">compile_type</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#symtable.symtable" title="Link to this definition">¶</a></dt>
  182. <dd><p>Return the toplevel <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> for the Python source <em>code</em>.
  183. <em>filename</em> is the name of the file containing the code. <em>compile_type</em> is
  184. like the <em>mode</em> argument to <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>.</p>
  185. </dd></dl>
  186. </section>
  187. <section id="examining-symbol-tables">
  188. <h2>Examining Symbol Tables<a class="headerlink" href="#examining-symbol-tables" title="Link to this heading">¶</a></h2>
  189. <dl class="py class">
  190. <dt class="sig sig-object py" id="symtable.SymbolTable">
  191. <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">symtable.</span></span><span class="sig-name descname"><span class="pre">SymbolTable</span></span><a class="headerlink" href="#symtable.SymbolTable" title="Link to this definition">¶</a></dt>
  192. <dd><p>A namespace table for a block. The constructor is not public.</p>
  193. <dl class="py method">
  194. <dt class="sig sig-object py" id="symtable.SymbolTable.get_type">
  195. <span class="sig-name descname"><span class="pre">get_type</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#symtable.SymbolTable.get_type" title="Link to this definition">¶</a></dt>
  196. <dd><p>Return the type of the symbol table. Possible values are <code class="docutils literal notranslate"><span class="pre">'class'</span></code>,
  197. <code class="docutils literal notranslate"><span class="pre">'module'</span></code>, <code class="docutils literal notranslate"><span class="pre">'function'</span></code>, <code class="docutils literal notranslate"><span class="pre">'annotation'</span></code>, <code class="docutils literal notranslate"><span class="pre">'TypeVar</span> <span class="pre">bound'</span></code>,
  198. <code class="docutils literal notranslate"><span class="pre">'type</span> <span class="pre">alias'</span></code>, and <code class="docutils literal notranslate"><span class="pre">'type</span> <span class="pre">parameter'</span></code>. The latter four refer to
  199. different flavors of <a class="reference internal" href="../reference/executionmodel.html#annotation-scopes"><span class="std std-ref">annotation scopes</span></a>.</p>
  200. <div class="versionchanged">
  201. <p><span class="versionmodified changed">Changed in version 3.12: </span>Added <code class="docutils literal notranslate"><span class="pre">'annotation'</span></code>, <code class="docutils literal notranslate"><span class="pre">'TypeVar</span> <span class="pre">bound'</span></code>, <code class="docutils literal notranslate"><span class="pre">'type</span> <span class="pre">alias'</span></code>,
  202. and <code class="docutils literal notranslate"><span class="pre">'type</span> <span class="pre">parameter'</span></code> as possible return values.</p>
  203. </div>
  204. </dd></dl>
  205. <dl class="py method">
  206. <dt class="sig sig-object py" id="symtable.SymbolTable.get_id">
  207. <span class="sig-name descname"><span class="pre">get_id</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#symtable.SymbolTable.get_id" title="Link to this definition">¶</a></dt>
  208. <dd><p>Return the table’s identifier.</p>
  209. </dd></dl>
  210. <dl class="py method">
  211. <dt class="sig sig-object py" id="symtable.SymbolTable.get_name">
  212. <span class="sig-name descname"><span class="pre">get_name</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#symtable.SymbolTable.get_name" title="Link to this definition">¶</a></dt>
  213. <dd><p>Return the table’s name. This is the name of the class if the table is
  214. for a class, the name of the function if the table is for a function, or
  215. <code class="docutils literal notranslate"><span class="pre">'top'</span></code> if the table is global (<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> returns <code class="docutils literal notranslate"><span class="pre">'module'</span></code>).
  216. For type parameter scopes (which are used for generic classes, functions,
  217. and type aliases), it is the name of the underlying class, function, or
  218. type alias. For type alias scopes, it is the name of the type alias.
  219. For <a class="reference internal" href="typing.html#typing.TypeVar" title="typing.TypeVar"><code class="xref py py-class docutils literal notranslate"><span class="pre">TypeVar</span></code></a> bound scopes, it is the name of the <code class="docutils literal notranslate"><span class="pre">TypeVar</span></code>.</p>
  220. </dd></dl>
  221. <dl class="py method">
  222. <dt class="sig sig-object py" id="symtable.SymbolTable.get_lineno">
  223. <span class="sig-name descname"><span class="pre">get_lineno</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#symtable.SymbolTable.get_lineno" title="Link to this definition">¶</a></dt>
  224. <dd><p>Return the number of the first line in the block this table represents.</p>
  225. </dd></dl>
  226. <dl class="py method">
  227. <dt class="sig sig-object py" id="symtable.SymbolTable.is_optimized">
  228. <span class="sig-name descname"><span class="pre">is_optimized</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#symtable.SymbolTable.is_optimized" title="Link to this definition">¶</a></dt>
  229. <dd><p>Return <code class="docutils literal notranslate"><span class="pre">True</span></code> if the locals in this table can be optimized.</p>
  230. </dd></dl>
  231. <dl class="py method">
  232. <dt class="sig sig-object py" id="symtable.SymbolTable.is_nested">
  233. <span class="sig-name descname"><span class="pre">is_nested</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#symtable.SymbolTable.is_nested" title="Link to this definition">¶</a></dt>
  234. <dd><p>Return <code class="docutils literal notranslate"><span class="pre">True</span></code> if the block is a nested class or function.</p>
  235. </dd></dl>
  236. <dl class="py method">
  237. <dt class="sig sig-object py" id="symtable.SymbolTable.has_children">
  238. <span class="sig-name descname"><span class="pre">has_children</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#symtable.SymbolTable.has_children" title="Link to this definition">¶</a></dt>
  239. <dd><p>Return <code class="docutils literal notranslate"><span class="pre">True</span></code> if the block has nested namespaces within it. These can
  240. be obtained with <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>
  241. </dd></dl>
  242. <dl class="py method">
  243. <dt class="sig sig-object py" id="symtable.SymbolTable.get_identifiers">
  244. <span class="sig-name descname"><span class="pre">get_identifiers</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#symtable.SymbolTable.get_identifiers" title="Link to this definition">¶</a></dt>
  245. <dd><p>Return a view object containing the names of symbols in the table.
  246. See the <a class="reference internal" href="stdtypes.html#dict-views"><span class="std std-ref">documentation of view objects</span></a>.</p>
  247. </dd></dl>
  248. <dl class="py method">
  249. <dt class="sig sig-object py" id="symtable.SymbolTable.lookup">
  250. <span class="sig-name descname"><span class="pre">lookup</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#symtable.SymbolTable.lookup" title="Link to this definition">¶</a></dt>
  251. <dd><p>Lookup <em>name</em> in the table and return a <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> instance.</p>
  252. </dd></dl>
  253. <dl class="py method">
  254. <dt class="sig sig-object py" id="symtable.SymbolTable.get_symbols">
  255. <span class="sig-name descname"><span class="pre">get_symbols</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#symtable.SymbolTable.get_symbols" title="Link to this definition">¶</a></dt>
  256. <dd><p>Return a list of <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> instances for names in the table.</p>
  257. </dd></dl>
  258. <dl class="py method">
  259. <dt class="sig sig-object py" id="symtable.SymbolTable.get_children">
  260. <span class="sig-name descname"><span class="pre">get_children</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#symtable.SymbolTable.get_children" title="Link to this definition">¶</a></dt>
  261. <dd><p>Return a list of the nested symbol tables.</p>
  262. </dd></dl>
  263. </dd></dl>
  264. <dl class="py class">
  265. <dt class="sig sig-object py" id="symtable.Function">
  266. <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">symtable.</span></span><span class="sig-name descname"><span class="pre">Function</span></span><a class="headerlink" href="#symtable.Function" title="Link to this definition">¶</a></dt>
  267. <dd><p>A namespace for a function or method. This class inherits from
  268. <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>
  269. <dl class="py method">
  270. <dt class="sig sig-object py" id="symtable.Function.get_parameters">
  271. <span class="sig-name descname"><span class="pre">get_parameters</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#symtable.Function.get_parameters" title="Link to this definition">¶</a></dt>
  272. <dd><p>Return a tuple containing names of parameters to this function.</p>
  273. </dd></dl>
  274. <dl class="py method">
  275. <dt class="sig sig-object py" id="symtable.Function.get_locals">
  276. <span class="sig-name descname"><span class="pre">get_locals</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#symtable.Function.get_locals" title="Link to this definition">¶</a></dt>
  277. <dd><p>Return a tuple containing names of locals in this function.</p>
  278. </dd></dl>
  279. <dl class="py method">
  280. <dt class="sig sig-object py" id="symtable.Function.get_globals">
  281. <span class="sig-name descname"><span class="pre">get_globals</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#symtable.Function.get_globals" title="Link to this definition">¶</a></dt>
  282. <dd><p>Return a tuple containing names of globals in this function.</p>
  283. </dd></dl>
  284. <dl class="py method">
  285. <dt class="sig sig-object py" id="symtable.Function.get_nonlocals">
  286. <span class="sig-name descname"><span class="pre">get_nonlocals</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#symtable.Function.get_nonlocals" title="Link to this definition">¶</a></dt>
  287. <dd><p>Return a tuple containing names of nonlocals in this function.</p>
  288. </dd></dl>
  289. <dl class="py method">
  290. <dt class="sig sig-object py" id="symtable.Function.get_frees">
  291. <span class="sig-name descname"><span class="pre">get_frees</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#symtable.Function.get_frees" title="Link to this definition">¶</a></dt>
  292. <dd><p>Return a tuple containing names of free variables in this function.</p>
  293. </dd></dl>
  294. </dd></dl>
  295. <dl class="py class">
  296. <dt class="sig sig-object py" id="symtable.Class">
  297. <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">symtable.</span></span><span class="sig-name descname"><span class="pre">Class</span></span><a class="headerlink" href="#symtable.Class" title="Link to this definition">¶</a></dt>
  298. <dd><p>A namespace of a class. This class inherits from <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>
  299. <dl class="py method">
  300. <dt class="sig sig-object py" id="symtable.Class.get_methods">
  301. <span class="sig-name descname"><span class="pre">get_methods</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#symtable.Class.get_methods" title="Link to this definition">¶</a></dt>
  302. <dd><p>Return a tuple containing the names of methods declared in the class.</p>
  303. </dd></dl>
  304. </dd></dl>
  305. <dl class="py class">
  306. <dt class="sig sig-object py" id="symtable.Symbol">
  307. <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">symtable.</span></span><span class="sig-name descname"><span class="pre">Symbol</span></span><a class="headerlink" href="#symtable.Symbol" title="Link to this definition">¶</a></dt>
  308. <dd><p>An entry in a <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> corresponding to an identifier in the
  309. source. The constructor is not public.</p>
  310. <dl class="py method">
  311. <dt class="sig sig-object py" id="symtable.Symbol.get_name">
  312. <span class="sig-name descname"><span class="pre">get_name</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#symtable.Symbol.get_name" title="Link to this definition">¶</a></dt>
  313. <dd><p>Return the symbol’s name.</p>
  314. </dd></dl>
  315. <dl class="py method">
  316. <dt class="sig sig-object py" id="symtable.Symbol.is_referenced">
  317. <span class="sig-name descname"><span class="pre">is_referenced</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#symtable.Symbol.is_referenced" title="Link to this definition">¶</a></dt>
  318. <dd><p>Return <code class="docutils literal notranslate"><span class="pre">True</span></code> if the symbol is used in its block.</p>
  319. </dd></dl>
  320. <dl class="py method">
  321. <dt class="sig sig-object py" id="symtable.Symbol.is_imported">
  322. <span class="sig-name descname"><span class="pre">is_imported</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#symtable.Symbol.is_imported" title="Link to this definition">¶</a></dt>
  323. <dd><p>Return <code class="docutils literal notranslate"><span class="pre">True</span></code> if the symbol is created from an import statement.</p>
  324. </dd></dl>
  325. <dl class="py method">
  326. <dt class="sig sig-object py" id="symtable.Symbol.is_parameter">
  327. <span class="sig-name descname"><span class="pre">is_parameter</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#symtable.Symbol.is_parameter" title="Link to this definition">¶</a></dt>
  328. <dd><p>Return <code class="docutils literal notranslate"><span class="pre">True</span></code> if the symbol is a parameter.</p>
  329. </dd></dl>
  330. <dl class="py method">
  331. <dt class="sig sig-object py" id="symtable.Symbol.is_global">
  332. <span class="sig-name descname"><span class="pre">is_global</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#symtable.Symbol.is_global" title="Link to this definition">¶</a></dt>
  333. <dd><p>Return <code class="docutils literal notranslate"><span class="pre">True</span></code> if the symbol is global.</p>
  334. </dd></dl>
  335. <dl class="py method">
  336. <dt class="sig sig-object py" id="symtable.Symbol.is_nonlocal">
  337. <span class="sig-name descname"><span class="pre">is_nonlocal</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#symtable.Symbol.is_nonlocal" title="Link to this definition">¶</a></dt>
  338. <dd><p>Return <code class="docutils literal notranslate"><span class="pre">True</span></code> if the symbol is nonlocal.</p>
  339. </dd></dl>
  340. <dl class="py method">
  341. <dt class="sig sig-object py" id="symtable.Symbol.is_declared_global">
  342. <span class="sig-name descname"><span class="pre">is_declared_global</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#symtable.Symbol.is_declared_global" title="Link to this definition">¶</a></dt>
  343. <dd><p>Return <code class="docutils literal notranslate"><span class="pre">True</span></code> if the symbol is declared global with a global statement.</p>
  344. </dd></dl>
  345. <dl class="py method">
  346. <dt class="sig sig-object py" id="symtable.Symbol.is_local">
  347. <span class="sig-name descname"><span class="pre">is_local</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#symtable.Symbol.is_local" title="Link to this definition">¶</a></dt>
  348. <dd><p>Return <code class="docutils literal notranslate"><span class="pre">True</span></code> if the symbol is local to its block.</p>
  349. </dd></dl>
  350. <dl class="py method">
  351. <dt class="sig sig-object py" id="symtable.Symbol.is_annotated">
  352. <span class="sig-name descname"><span class="pre">is_annotated</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#symtable.Symbol.is_annotated" title="Link to this definition">¶</a></dt>
  353. <dd><p>Return <code class="docutils literal notranslate"><span class="pre">True</span></code> if the symbol is annotated.</p>
  354. <div class="versionadded">
  355. <p><span class="versionmodified added">New in version 3.6.</span></p>
  356. </div>
  357. </dd></dl>
  358. <dl class="py method">
  359. <dt class="sig sig-object py" id="symtable.Symbol.is_free">
  360. <span class="sig-name descname"><span class="pre">is_free</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#symtable.Symbol.is_free" title="Link to this definition">¶</a></dt>
  361. <dd><p>Return <code class="docutils literal notranslate"><span class="pre">True</span></code> if the symbol is referenced in its block, but not assigned
  362. to.</p>
  363. </dd></dl>
  364. <dl class="py method">
  365. <dt class="sig sig-object py" id="symtable.Symbol.is_assigned">
  366. <span class="sig-name descname"><span class="pre">is_assigned</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#symtable.Symbol.is_assigned" title="Link to this definition">¶</a></dt>
  367. <dd><p>Return <code class="docutils literal notranslate"><span class="pre">True</span></code> if the symbol is assigned to in its block.</p>
  368. </dd></dl>
  369. <dl class="py method">
  370. <dt class="sig sig-object py" id="symtable.Symbol.is_namespace">
  371. <span class="sig-name descname"><span class="pre">is_namespace</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#symtable.Symbol.is_namespace" title="Link to this definition">¶</a></dt>
  372. <dd><p>Return <code class="docutils literal notranslate"><span class="pre">True</span></code> if name binding introduces new namespace.</p>
  373. <p>If the name is used as the target of a function or class statement, this
  374. will be true.</p>
  375. <p>For example:</p>
  376. <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>
  377. <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>
  378. <span class="go">True</span>
  379. </pre></div>
  380. </div>
  381. <p>Note that a single name can be bound to multiple objects. If the result
  382. is <code class="docutils literal notranslate"><span class="pre">True</span></code>, the name may also be bound to other objects, like an int or
  383. list, that does not introduce a new namespace.</p>
  384. </dd></dl>
  385. <dl class="py method">
  386. <dt class="sig sig-object py" id="symtable.Symbol.get_namespaces">
  387. <span class="sig-name descname"><span class="pre">get_namespaces</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#symtable.Symbol.get_namespaces" title="Link to this definition">¶</a></dt>
  388. <dd><p>Return a list of namespaces bound to this name.</p>
  389. </dd></dl>
  390. <dl class="py method">
  391. <dt class="sig sig-object py" id="symtable.Symbol.get_namespace">
  392. <span class="sig-name descname"><span class="pre">get_namespace</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#symtable.Symbol.get_namespace" title="Link to this definition">¶</a></dt>
  393. <dd><p>Return the namespace bound to this name. If more than one or no namespace
  394. is bound to this name, a <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> is raised.</p>
  395. </dd></dl>
  396. </dd></dl>
  397. </section>
  398. </section>
  399. <div class="clearer"></div>
  400. </div>
  401. </div>
  402. </div>
  403. <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
  404. <div class="sphinxsidebarwrapper">
  405. <div>
  406. <h3><a href="../contents.html">Table of Contents</a></h3>
  407. <ul>
  408. <li><a class="reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">symtable</span></code> — Access to the compiler’s symbol tables</a><ul>
  409. <li><a class="reference internal" href="#generating-symbol-tables">Generating Symbol Tables</a></li>
  410. <li><a class="reference internal" href="#examining-symbol-tables">Examining Symbol Tables</a></li>
  411. </ul>
  412. </li>
  413. </ul>
  414. </div>
  415. <div>
  416. <h4>Previous topic</h4>
  417. <p class="topless"><a href="ast.html"
  418. title="previous chapter"><code class="xref py py-mod docutils literal notranslate"><span class="pre">ast</span></code> — Abstract Syntax Trees</a></p>
  419. </div>
  420. <div>
  421. <h4>Next topic</h4>
  422. <p class="topless"><a href="token.html"
  423. title="next chapter"><code class="xref py py-mod docutils literal notranslate"><span class="pre">token</span></code> — Constants used with Python parse trees</a></p>
  424. </div>
  425. <div role="note" aria-label="source link">
  426. <h3>This Page</h3>
  427. <ul class="this-page-menu">
  428. <li><a href="../bugs.html">Report a Bug</a></li>
  429. <li>
  430. <a href="https://github.com/python/cpython/blob/main/Doc/library/symtable.rst"
  431. rel="nofollow">Show Source
  432. </a>
  433. </li>
  434. </ul>
  435. </div>
  436. </div>
  437. <div id="sidebarbutton" title="Collapse sidebar">
  438. <span>«</span>
  439. </div>
  440. </div>
  441. <div class="clearer"></div>
  442. </div>
  443. <div class="related" role="navigation" aria-label="related navigation">
  444. <h3>Navigation</h3>
  445. <ul>
  446. <li class="right" style="margin-right: 10px">
  447. <a href="../genindex.html" title="General Index"
  448. >index</a></li>
  449. <li class="right" >
  450. <a href="../py-modindex.html" title="Python Module Index"
  451. >modules</a> |</li>
  452. <li class="right" >
  453. <a href="token.html" title="token — Constants used with Python parse trees"
  454. >next</a> |</li>
  455. <li class="right" >
  456. <a href="ast.html" title="ast — Abstract Syntax Trees"
  457. >previous</a> |</li>
  458. <li><img src="../_static/py.svg" alt="Python logo" style="vertical-align: middle; margin-top: -1px"/></li>
  459. <li><a href="https://www.python.org/">Python</a> &#187;</li>
  460. <li class="switchers">
  461. <div class="language_switcher_placeholder"></div>
  462. <div class="version_switcher_placeholder"></div>
  463. </li>
  464. <li>
  465. </li>
  466. <li id="cpython-language-and-version">
  467. <a href="../index.html">3.12.3 Documentation</a> &#187;
  468. </li>
  469. <li class="nav-item nav-item-1"><a href="index.html" >The Python Standard Library</a> &#187;</li>
  470. <li class="nav-item nav-item-2"><a href="language.html" >Python Language Services</a> &#187;</li>
  471. <li class="nav-item nav-item-this"><a href=""><code class="xref py py-mod docutils literal notranslate"><span class="pre">symtable</span></code> — Access to the compiler’s symbol tables</a></li>
  472. <li class="right">
  473. <div class="inline-search" role="search">
  474. <form class="inline-search" action="../search.html" method="get">
  475. <input placeholder="Quick search" aria-label="Quick search" type="search" name="q" id="search-box" />
  476. <input type="submit" value="Go" />
  477. </form>
  478. </div>
  479. |
  480. </li>
  481. <li class="right">
  482. <label class="theme-selector-label">
  483. Theme
  484. <select class="theme-selector" oninput="activateTheme(this.value)">
  485. <option value="auto" selected>Auto</option>
  486. <option value="light">Light</option>
  487. <option value="dark">Dark</option>
  488. </select>
  489. </label> |</li>
  490. </ul>
  491. </div>
  492. <div class="footer">
  493. &copy;
  494. <a href="../copyright.html">
  495. Copyright
  496. </a>
  497. 2001-2024, Python Software Foundation.
  498. <br />
  499. This page is licensed under the Python Software Foundation License Version 2.
  500. <br />
  501. Examples, recipes, and other code in the documentation are additionally licensed under the Zero Clause BSD License.
  502. <br />
  503. See <a href="/license.html">History and License</a> for more information.<br />
  504. <br />
  505. The Python Software Foundation is a non-profit corporation.
  506. <a href="https://www.python.org/psf/donations/">Please donate.</a>
  507. <br />
  508. <br />
  509. Last updated on Apr 09, 2024 (13:47 UTC).
  510. <a href="/bugs.html">Found a bug</a>?
  511. <br />
  512. Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 7.2.6.
  513. </div>
  514. </body>
  515. </html>
上海开阖软件有限公司 沪ICP备12045867号-1