<p>我正在使用<code>pycharm</code>,它列出了与代码相关的所有错误/警告。虽然我了解其中的大多数,但我不确定这一个“从外部范围阴影名称xyz”。有一些关于这个的帖子:<a href="https://stackoverflow.com/questions/20125172/how-bad-is-shadowing-names-defined-in-outer-scopes">How bad is shadowing names defined in outer scopes?</a>但是他们似乎正在访问一个全局变量。</p>
<p>在我的例子中,我的<code>__main__</code>函数有几个变量名,然后它调用另一个函数<code>sample_func</code>,它再次使用这些变量名(主要是循环变量名)。我假设,因为我在一个不同的函数中,这些变量的作用域将是局部的,但是警告似乎表明不是这样。</p>
<p>有什么想法吗?以下是一些代码供您参考:</p>
<pre><code>def sample_func():
for x in range(1, 5): --> shadows name x from outer scope
print x
if __name__ == "__main__":
for x in range(1, 5):
sample_func()
</code></pre>