我想将方法映射到实例列表。所有实例都是类,从一些抽象类继承,方法为Method()
。我可以通过列表理解轻松完成:
[o.Method() for o in list_of_instances]
但是如何使用map()
呢?我正在尝试
map(MyAbstractClass.Method, list_of_instances)
但它(原因!)映射MyAbstractClass的空方法而不是重写的方法。有没有办法用map()
映射被覆盖的?
答案 0 :(得分:3)
使用operator.methodcaller
:
import operator
map(operator.methodcaller("Method"), list_of_instances)
答案 1 :(得分:2)
这就是你要找的东西吗?
map(lambda x: x.Method(), list_of_instances)