为了账号安全,请及时绑定邮箱和手机立即绑定

函数不更新全局变量

函数不更新全局变量

至尊宝的传说 2023-07-27 09:37:26
我有以下功能 class calculation()              x=3           def calculateOO(y):          global x          x=3*y            calculateOO(2)                   print(x)答案是 3,而不是 6。该函数没有效果。函数有什么问题吗?
查看完整描述

3 回答

?
繁花如伊

TA贡献2012条经验 获得超12个赞

适当的缩进:


x=3

def calculateOO(y):

    global x

    x=3*y


calculateOO(2)

print(x)   # 6


查看完整回答
反对 回复 2023-07-27
?
白板的微信

TA贡献1883条经验 获得超3个赞

我认为您对全局变量、返回语句和函数感到困惑。尝试一下并阅读我的内联评论:


x=3

def calculateOO(y):

    global x

    x=3*y


def calculateXX(z):

    y=3*z

    return y


print(calculateOO(2))

#prints None, as the function has no return statement

print(x)

#prints 6, as we set x to be global in the calculateOO() function above


print(calculateXX(2))

#prints 6, as we return the value inside the function

print(y)

#causes an error, as we did not set a global y


查看完整回答
反对 回复 2023-07-27
?
守着星空守着你

TA贡献1799条经验 获得超8个赞

您还可以执行以下操作:


x=3


def calculateOO(y):

    global x

    x=3*y

    return  print((3*y),x)


calculateOO(2)



希望这个解决方案对您有所帮助


查看完整回答
反对 回复 2023-07-27
  • 3 回答
  • 0 关注
  • 106 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信