-1

我真的坚持这一点,我需要在另一个函数中调用一个函数,在内部更改参数,但它让我说“浮动”对象是不可调用的。

例如:

def functioncall(f,epsilon):
   guess = 1.0
   for i in range(100):
      if f(guess) - guess < epsilon:
        return guess
      else:
        guess = f(guess)

给我

File "C:/Users/Apoo/Dropbox/6.00x/midTermQuiz1/problem8.py", line 16, in functioncall
    if f(guess) - guess < epsilon:
TypeError: 'float' object is not callable

我知道这样做是在调用函数 f 的值,在我的情况下它是一个浮点数,但是我该如何更改呢?

4

2 回答 2

4

您实际上是在传递函数的返回值,f而不是函数对象本身。

使用 just :functioncall(f,0.001)调用时functioncall

如果您执行类似的操作functioncall(f(<int here>),0.001),则它将返回的值f(<int here>)作为第一个参数发送并调用(guess)它会引发错误。

于 2012-11-03T18:18:50.623 回答
1

为了使您编写的代码正常工作,传递给的第一个参数functioncall必须是函数或其他可调用对象。您正在传递一个 int 或 float。

于 2012-11-03T18:12:33.653 回答