按照 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,您的问题可以通过不同的方法解决。
我正在开发一些代码,需要按照声明的相同顺序访问 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,您的问题可以通过不同的方法解决。