-1

私は本当にこれにこだわっています。内部で引数を変更して別の関数内で関数を呼び出す必要がありますが、「float」オブジェクトは呼び出し可能ではないと言い続けます。

例えば:

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

そうすることで、私の場合はfloatである関数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 に答える