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

Python的global变量的bug问题?小白求教!

Python的global变量的bug问题?小白求教!

asdhjhg 2017-04-02 00:03:30
fibMetered(x):     global numCalls     numCalls += 1     if x == 0 or x == 1:         return 1     else:         return fibMetered(x-1) + fibMetered(x-2)   def testFib(n):     global numCalls     numCalls = 0     for i in range(n+1):         print('fib of ' + str(i) + ' = ' + str(fibMetered(i)))         print ('fib called ' + str(numCalls) + ' times')          testFib(5) 上面的是经典的递归算斐波那契数列!下面是测试每计算(调用)一次递归函数,计算结果是多少并且调用了递归几次!但是中间定义了global变量,存在bug,即每次调用的时候,因为numCalls是global variable,所以每次测试i的时候,numCalls的值会连带上一次i(i-1)的调用次数一起计算,所以这个testFib是测试不出准确值的,如果要改的话应该怎么改?有几种改法?为什么这么改?
查看完整描述

目前暂无任何回答

  • 0 回答
  • 0 关注
  • 1478 浏览
慕课专栏
更多

添加回答

举报

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