局部变量与全局变量
在 Python 中,变量根据位置的不同,其所影响的范围也不同。比如自家的卫生间只能自家人用,公共卫生间是所有人都可以用。
含义:
局部变量:在函数里面定义的变量都是局部变量,只能在函数内部使用。
全局变量:在函数之外定义的变量,在任何函数之内都可以使用
注意:如果局部变量和全局变量重名了,就近原则,局部变量优先。
代码示例:
text = "小东西"
def test1():
# 定义局部变量a
a = 10
# 使用全局变量
print(text)
def test2():
# 使用全局变量
print(text)
def test3():
# 定义局部变量
text = 16
# 如果局部变量和全局变量重名,就近原则,局部变量优先
print(text)
# 调用test1函数
test1()
# test1函数内的局部变量 a 无用
# 输出结果:小东西
# 调用test2函数
test2()
# 输出结果:小东西
test3()
# 输出结果:16
# 局部变量和全局变量重名,就近原则,局部变量优先
# 此处无法使用a
# print(a)
局部变量修改全局变量
1、局部变量和全局变量即使名字相同但是本质上是两个变量;
2、使用 global 关键字指定当前变量为全局变量。
代码示例:
text = "我的小宝贝"
def up_data():
global text
text = "爱老虎油!"
# 调用函数
up_data()
print(text)
# 输出结果:爱老虎油!
全局变量的位置
一般在开发的时候,应该把代码中的全局变量定义在函数的上方,保证左右的变量都可以正常访问。
代码示例:
# 定义一个全局变量
num = 10
title = "lalal"
# 又定义了一个全局变量
name = "小计"
# 定义一个函数
def demo():
print("%d"%num)
print("%s"%title)
print("%s"%name)
demo()
"""
输出结果:
10
lalal
小计
"""
结合赋值运算符的运用
代码示例:
a = [100]
def test(num):
num = num + num
print(num)
test(a)
print(a)
'''
输出结果
函数内的num值 [100, 100]
全局变量a的值 [100]
'''
a = [100]
def test(num):
num += num
print("函数内的num值",num)
# 将a的值当做参数传递
test(a)
print("全局变量a的值",a)
'''
输出结果
函数内的num值 [100, 100]
全局变量a的值 [100, 100]
'''
分析总结:
1、num += num :+= num 指向谁,就对谁进行修改,当 a 传递进来的时候, a 是可变类型[100],此时直接修改。
2、num = num +num :先执行等于号右边,得到的结果在内存中暂时保存,此时左边的局部变量 num 指向这个新的内存地址。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?