如何在函数中使用for-loop作为参数

时间:2016-11-12 00:33:56

标签: python-2.7 class inheritance

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]。有关如何执行此操作的任何提示?谢谢!

1 个答案:

答案 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])