python局部变量与全局变量问题

本文探讨了Python中关于局部变量与全局变量的使用规则。通过示例解释了为何在函数内部修改全局变量时会出现错误,原因是Python会将同名变量视为局部变量。总结了如何正确地在函数内部引用和修改全局变量的方法,帮助读者理解Python的作用域规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

不是局部变量不可修改全局变量吗?怎么还可以运行呢?

答:因为point += 2相当于 point = point + 2,这个point接收的参数是【位置参数】point

所以相当于只是在【局部作用域】写了一个赋值语句。

def sum(point):
point += 2 # 局部变量
return point
point = 10 # 全局变量
n = sum(5)
print(n)

在这里插入图片描述
这样子是不行的:

point = 4
def sum(name):
    point = point + 2
    return point
point = 10
n = sum(10)
print(n)

出现报错:UnboundLocalError: local variable ‘point’ referenced before assignment。翻译一下就是:局部变量point在赋值之前被引用。也就是说:python把point = point + 2中的point当成了局部变量使用,然而他并没有被赋值,因此出现报错,为什么局部变量不使用全局变量的point呢?这是因为在同一行赋值语句里,局部变量不能引用全局变量,会被python误解为修改全局变量值。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值