鉴于:
- 一组类实例 (CL) 和一个引用实例 (r)
- 该类有几个getter,例如'getA','getB',...
Todo:通过比较'getA','getB',从CL中找到匹配'r'的那些实例......对于好的代码,应该只编写一个选择函数,并且通过提供不同的getter作为比较和选择标准来调用.
我的代码如下所示:
def selector(r, cl, cmp_function_name):
return [i for i in CL if getattr(r, cmp_function_name)() == getattr(i, cmp_function_name)()]
# call it like this:
selector(r, cl, 'getA')
selector(r, cl, 'getB')
...
但我不确定这是整洁的还是 pythonic 的。你怎么看它,你会如何编码?
谢谢!