比如:
def foo():
a = 10
def foo2():
a = 20
<code class="python"><span class="k">def</span> <span class="nf">foo</span><span class="p">():</span>
<span class="n">a_int</span><span class="o">=</span><span class="mi">10</span>
<span class="n">a_list_with_method</span><span class="o">=</span><span class="p">[</span><span class="mi">0</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mi">10</span><span class="p">]</span>
<span class="k">def</span> <span class="nf">foo2</span><span class="p">():</span>
<span class="n">a_int</span><span class="o">=</span><span class="mi">20</span>
<span class="n">a_list_with_method</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="mi">11</span><span class="p">)</span>
<span class="n">foo2</span><span class="p">()</span>
<span class="k">print</span><span class="p">(</span><span class="n">a_int</span><span class="p">)</span> <span class="c">#Python2.x 请用print a_int</span>
<span class="k">print</span><span class="p">(</span><span class="n">a_list_with_method</span><span class="p">)</span> <span class="c">#Python2.x 请用print a_list_with_method</span>
<span class="n">foo</span><span class="p">()</span>
</code>在foo2中没有办法改变foo中a的值,这能否说因为python不区分变量定义和赋值从而导致的一个缺陷?python3引入的nonlocal恰好证明了这一点?我想说的是,你从一个错误的论据导出了一个正确的结论。。
python怎么学习?python怎么入门?python在哪学?python怎么学才快?不用担心,这里为大家提供了python速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号