以特定顺序获取类属性

问题描述:

我正试图找到一种方法来筛选&对列表中类的属性值进行排序。以特定顺序获取类属性

这里是我做了什么:

[foo_class.__dict__[key] for key in foo_class.__dict__.keys() if key in my_bar_list] 

my_bar_list是类属性包含一些列表(不是全部),在一个特殊的顺序。

请问my_bar_list命令中排序为foo_class属性的Pythonic方法是否存在?

+0

请注意,您可以省略'.keys()' - 默认情况下迭代遍历字典遍历键。此外,根据[PEP-8](http://legacy.python.org/dev/peps/pep-0008/),应该是'FooClass'。 – jonrsharpe 2014-09-04 16:06:57

+0

感谢您的注意! – Hrabal 2014-09-04 20:01:02

那岂不是更简单的,只是做的事:

[foo_class.__dict__[key] for key in my_bar_list if hasattr(foo_class, key)] 

这样,你保留你的初始订单,而无需排序另一个时间。

+0

+1遍历有序列表,而不是任意排序的列表。 – chepner 2014-09-04 16:17:50

+0

完美的作品!如果对某人有用,下面是我的最终代码:'[foo_class .__ dict __ [key] if hasattr(foo_class,key)else''for my_bar_list中的键]' – Hrabal 2014-09-05 10:35:06