擅长:python、mysql、java
<p>你把望远镜搞糊涂了。假设您的文件如下所示:</p>
<pre><code>def print_a_line(line_count, f):
print line_count, f.readline()
def main():
current_line = 3
print_a_line(current_line, current_file)
if __name__ == "__main__":
current_file = open('file.txt')
main()
</code></pre>
<p>在<code>main</code>中,有{<cd2>},而{<cd3>}是一个局部变量。方法<code>print_a_line</code>和变量{<cd5>}是全局的,这就是为什么{<cd1>}可以使用它们。在<code>print_a_line</code>中,有局部变量<code>line_count</code>和{<cd9>},它们分别与<code>current_line</code>和{<cd5>}相同。但是,因为<code>current_line</code>是<code>main</code>的局部,而{<cd8>}是{<cd4>}的局部,因此没有一个范围<code>current_line == line_count</code>计算{<cd17>}。在</p>
<p>这样做绝对不是坏事——相同的值在不同的范围内可能意味着不同的东西,变量的名称应该反映这一点。在</p>