在其他功能中调用功能?

时间:2012-11-03 18:09:32

标签: python

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

例如:

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的值,在我的情况下这是一个浮点数,但我怎么能改变它?

2 个答案:

答案 0 :(得分:4)

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

在致电functioncall(f,0.001)时使用functioncall

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

答案 1 :(得分:1)

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