擅长:python、mysql、java
<p>也许您认为<code>global p1</code>使名称<code>p1</code>引用前面一行中用<code>p1=0</code>定义的变量。它没有这样做,因为前面的变量不是全局变量,它是函数<code>distrib</code>的局部变量。在</p>
<p>定义嵌套函数时,不需要<code>global</code>引用外部变量。但是,您不能(通过任何合理的方式)从Python2.7中的嵌套函数中赋值给外部变量。您需要使用<code>nonlocal</code>,而且它只在python3.0+中使用。在嵌套函数中对<code>p1</code>赋值的事实阻止了名称在外部函数中引用<code>p1</code>,而使用<code>global</code>也无济于事。在</p>