uTools-Manuals/docs/python/builtins.html
2019-04-21 11:50:48 +08:00

17 lines
4.1 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.

<div class="body" role="main"><div class="section" id="module-builtins"><h1><span class="yiyi-st" id="yiyi-10">29.3. <a class="reference internal" href="#module-builtins" title="builtins: The module that provides the built-in namespace."><code class="xref py py-mod docutils literal"><span class="pre">builtins</span></code></a> — 内建对象</span></h1><p><span class="yiyi-st" id="yiyi-11">此模块提供对Python的所有'内建'标识符的直接访问;例如,<code class="docutils literal"><span class="pre">builtins.open</span></code>是内建函数<a class="reference internal" href="functions.html#open" title="open"><code class="xref py py-func docutils literal"><span class="pre">open()</span></code></a>的全名。</span><span class="yiyi-st" id="yiyi-12">有关文档,请参见<a class="reference internal" href="functions.html#built-in-funcs"><span>内建函数</span></a><a class="reference internal" href="constants.html#built-in-consts"><span>内建常量</span></a></span></p><p><span class="yiyi-st" id="yiyi-13">这个模块通常不被大多数应用程序显式地访问,但在提供与内建值相同名称的对象的模块中很有用,但是其中还需要该名称的内建。</span><span class="yiyi-st" id="yiyi-14">例如,在想要实现包装内建<a class="reference internal" href="functions.html#open" title="open"><code class="xref py py-func docutils literal"><span class="pre">open()</span></code></a><a class="reference internal" href="functions.html#open" title="open"><code class="xref py py-func docutils literal"><span class="pre">open()</span></code></a>函数的模块中,可以直接使用此模块:</span></p><pre><code class="language-python"><span></span><span class="kn">import</span> <span class="nn">builtins</span>
<span class="k">def</span> <span class="nf">open</span><span class="p">(</span><span class="n">path</span><span class="p">):</span>
<span class="n">f</span> <span class="o">=</span> <span class="n">builtins</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="s1">'r'</span><span class="p">)</span>
<span class="k">return</span> <span class="n">UpperCaser</span><span class="p">(</span><span class="n">f</span><span class="p">)</span>
<span class="k">class</span> <span class="nc">UpperCaser</span><span class="p">:</span>
<span class="sd">'''Wrapper around a file that converts output to upper-case.'''</span>
<span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">f</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_f</span> <span class="o">=</span> <span class="n">f</span>
<span class="k">def</span> <span class="nf">read</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">count</span><span class="o">=-</span><span class="mi">1</span><span class="p">):</span>
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_f</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">count</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span>
<span class="c1"># ...</span>
</code></pre><p><span class="yiyi-st" id="yiyi-15">作为实现细节,大多数模块具有作为其全局的一部分可用的名称<code class="docutils literal"><span class="pre">__builtins__</span></code></span><span class="yiyi-st" id="yiyi-16"><code class="docutils literal"><span class="pre">__builtins__</span></code>的值通常是此模块或此模块的<a class="reference internal" href="stdtypes.html#object.__dict__" title="object.__dict__"><code class="xref py py-attr docutils literal"><span class="pre">__dict__</span></code></a>属性的值。</span><span class="yiyi-st" id="yiyi-17">由于这是一个实现细节它不能被Python的替代实现使用。</span></p></div></div>