Python中函数存在同名局部变量时如何访问全局变量
实现方法
你的原代码问题在于:Python函数内对变量赋值时,该变量默认会被识别为局部变量,覆盖同名全局变量,所以两个函数都没有使用你定义的全局变量v=1。
按照需求修改后的代码如下:
v = 1 def func(): # 移除内部局部变量v的赋值,直接访问全局作用域的v=1 print(v) def add(): # 将局部v赋值为2,满足2+2=4的输出要求 v = 2 print(v + v) func() add()
如果你希望add函数也复用全局的v变量来计算,可以采用如下写法:
v = 1 def func(): print(v) def add(): # 基于全局v=1计算得到2,再相加得到4 print((v + 1) + (v + 1)) func() add()
两种写法运行后的输出均为:
1 4
内容的提问来源于stack exchange,提问作者Meganathan
相关产品推荐
相关产品推荐

