class Diff:
def __init__(self, f, h):
self.f = f
self.h = h
class Backward1(Diff):
def __call__(self, x):
f = self.f
h = self.h
return (f(x)-f(x-h))/h
from math import sin, pi
A = Backward1(sin,1E-5)
print A(pi)
想要计算几个h值,例如[h = 2 **( - k),范围(10)中的k]。有关如何执行此操作的任何提示?谢谢!
答案 0 :(得分:0)
您无法在列表推导中分配变量,但我认为您不需要:
print([Backward1(sin, 2**(-k))(pi) for k in range(10)])
将构建不同h
的结果列表
或者是一个两步过程,因此您可以对同一组函数使用不同的args:
fns = [Backward1(sin, 2**(-k)) for k in range(10)]
print([fn(pi) for fn in fns])
print([fn(2*pi) for fn in fns])