xy-xuan 发表于 2023-9-5 16:58:21

可以这段代码的报错的内容和原因吗?

代码的目的是实现一个斐波那契数列

def fib():
    x = 0
    y = 1
    def fib_():
      nonlocal x , y
      x = y
      y = x + y
      return x
    return fib_()

f = fib()
f()
Traceback (most recent call last):
File "<pyshell#85>", line 1, in <module>
    f()
TypeError: 'int' object is not callable

isdkz 发表于 2023-9-5 16:58:37

错误内容:TypeError: 'int' object is not callable
错误原因:在代码的最后一行,f是一个整数类型的变量,而不是一个可调用的函数。在之前的代码中,我们将fib_()函数的返回值赋值给了f,但是fib_()函数返回的是一个整数,而不是一个函数。因此,当我们尝试调用f()时,就会出现TypeError错误。要解决这个问题,我们需要将f的赋值语句修改为f = fib,这样f就是一个函数,可以被调用。修改后的代码如下:

def fib():
    x = 0
    y = 1
    def fib_():
      nonlocal x , y
      x = y
      y = x + y
      return x
    return fib_

f = fib()
f()
页: [1]
查看完整版本: 可以这段代码的报错的内容和原因吗?