擅长:python、mysql、java
<p>当您编写以下代码行时</p>
<pre><code>q=[1,2,3]
def f():
print('q' in locals())
f()
</code></pre>
<p>在这里,变量“q”不是函数f()的局部变量,因为它是在函数作用域之外声明的。在函数内部,可以使用全局变量访问q。
但是,函数外的“q”是一个局部变量。
因此,当您检查函数内部时</p>
<pre><code>q=[1,2,3]
def f():
print('q' in locals())
</code></pre>
<p>它将返回False</p>
<p>但如果您在函数内声明并检查如下:-</p>
<pre><code>def f():
q=[1,2,3]
print('q' in locals())
</code></pre>
<p>它将返回True,因为q现在是函数的局部</p>
<p>此外,如果您将函数内的“q”选为全局,它将返回True,因为“q”在函数外声明并具有全局作用域</p>
<pre><code>q=[1,2,3]
def f():
print('q' in globals())
f()
</code></pre>
<p>输出</p>
<pre><code>True
</code></pre>