按照Python中声明的顺序读取类属性

时间:2015-04-11 13:36:56

标签: python python-2.7 ordereddictionary

我正在开发一些代码,需要按照声明它们的顺序访问类的属性。我找到了类似问题的以下答案:https://stackoverflow.com/a/4460034但是正如评论中提到的那样,它不是线程安全的。我使用的是Python 2.7。我想知道在收集属性时是否有办法使用OrderedDict强制python?

实际的用例是能够定义Structs,就像在这里完成一样(http://code.activestate.com/recipes/498149/),但解决方案应该是线程安全的。

1 个答案:

答案 0 :(得分:0)

您的确切问题是使用元类在 Python3 中提供解决方案。它在the docs中描述。

但是,它使用__prepare__类方法,这在Python2.7中不可用。经过一些谷歌搜索后,我确实发现this solution__prepare__移植到Python2.7,但它非常黑客和肮脏。

对我而言,这听起来像是你XY problem,你的问题可以通过不同的方法解决。