局部作用域指函数内定义的变量仅在函数内部可用,函数外部无法访问;2. 局部变量在函数调用时创建,结束时自动销毁,不同函数的同名局部变量互不干扰;3. 函数可读取全局变量但不能直接修改,需用global或nonlocal声明;4. 局部变量会遮蔽同名全局变量,但不影响其值;5. 局部作用域增强函数独立性与安全性,避免意外修改外部数据。

Python局部作用域指的是在函数内部定义的变量所处的作用域。这些变量只能在该函数内部被访问,函数外部无法直接使用它们。
局部作用域的基本特点
当你在函数中使用赋值语句创建一个变量时,这个变量默认属于局部作用域。它只在函数执行期间存在,函数运行结束后,变量也会被销毁。
- 局部变量在函数调用时创建,函数结束时自动回收
- 不同函数中的同名局部变量互不影响
- 函数内部可以直接读取全局变量,但不能修改(除非使用global或nonlocal)
例子说明
看一个简单例子:
def my_func():
x = 10
print(x)
<p>my_func() # 输出 10</p><p><span>立即学习</span>“<a href="https://pan.quark.cn/s/00968c3c2c15" style="text-decoration: underline !important; color: blue; font-weight: bolder;" rel="nofollow" target="_blank">Python免费学习笔记(深入)</a>”;</p><div class="aritcle_card flexRow">
<div class="artcardd flexRow">
<a class="aritcle_card_img" href="/ai/2637" title="零沫AI工具导航"><img
src="https://img.php.cn/upload/ai_manual/001/246/273/6971ffb5a3df5794.png" alt="零沫AI工具导航" onerror="this.onerror='';this.src='/static/lhimages/moren/morentu.png'" ></a>
<div class="aritcle_card_info flexColumn">
<a href="/ai/2637" title="零沫AI工具导航">零沫AI工具导航</a>
<p>零沫AI工具导航-AI导航新标杆,探索全球实用AI工具</p>
</div>
<a href="/ai/2637" title="零沫AI工具导航" class="aritcle_card_btn flexRow flexcenter"><b></b><span>下载</span> </a>
</div>
</div><h1>print(x) # 这里会报错:NameError: name 'x' is not defined</h1><p>上面的x就是局部变量,只能在my_func函数内使用。
与全局变量的区别
如果函数内外都有同名变量,局部变量会“遮蔽”全局变量:
x = 20 <p>def show(): x = 5 # 这是局部变量 print(x)</p><p>show() # 输出 5 print(x) # 输出 20(全局的x没变)
基本上就这些。局部作用域让函数更独立、安全,避免意外修改外部数据。理解清楚有助于写出更可靠的代码。










