我真的坚持这个,我需要在另一个函数中调用一个函数来改变内部的参数,但它让我说“浮动”对象不可调用。
例如:
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的值,在我的情况下这是一个浮点数,但我怎么能改变它?
答案 0 :(得分:4)
您实际上是传递函数f
的返回值而不是函数对象本身。
在致电functioncall(f,0.001)
时使用functioncall
如果您执行functioncall(f(<int here>),0.001)
之类的操作,则会将f(<int here>)
返回的值作为第一个参数发送,并在其上调用(guess)
会引发错误。
答案 1 :(得分:1)
对于编写为工作的代码,传递给functioncall
的第一个参数必须是函数或其他可调用对象。你正在传递一个int或float。