假设我们有一个具有接受该类的另一个实例的实例方法的类,然后返回该类的新实例。Python中的链接方法
这种类型的例子是一个整数。它有__mul__
方法,它接受另一个整数并返回一个整数,它是两个数的乘积。
这是问题所在。我有一个类实现了像__mul__
这样的方法。我有这个类的实例列表,并且我想将上述对象的上述方法应用于之前的对象,然后将其结果应用到之前的对象等,直到我们处理完整个列表,并拥有一个对象。
一个具体的例子看起来像这样。试想一下,我们有对象的列表...
my_objs = [do, re, me, fa, so, la, te, do]
...和想象,他们有“结合”的方法,它遵循上述的模式,我们想申请我概述了它的程序。你可能会这样想......
my_objs_together = do.combine(re.combine(me.combine(fa.combine(so.combine(la.combine(te.combine(do)))))))
这很明显,很明显。这让我想编写一个通用的功能...
def together(list_of_objects, method_name):
combined = list_of_objects[0]
for obj in list_of_objects[1:]:
combined = getattr(combined, method_name)(obj)
return combined
...但它已经有可能是一个标准库函数,这样做,随即发生在我身上?
您可能会喜欢[学习像Haskell这样的函数式编程语言](http://learnyouahaskell.com/)。 Reduce,map和friends是Python恰好支持的功能性结构。起初很难,但一旦你了解了范例,你会发现很多这样的巧妙的东西,你可以做。 – 2015-02-23 20:32:28