按照 Python 中声明的相同顺序读取 class 属性

Reading class attributes in the same order as declared in Python

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

实际用例是能够像此处那样定义结构体 (http://code.activestate.com/recipes/498149/),但解决方案应该是线程安全的。

您的具体问题在 Python3 中有使用元类的解决方案。 the docs.

中对此进行了描述

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

对我来说,您似乎遇到了 XY problem,您的问题可以通过不同的方法解决。