如何在Python中获取类属性的定义顺序?

我想定义应该代表数据结构的轻量级类.与许多数据结构的情况一样,数据的顺序很重要.所以,如果我继续定义:

class User(DataStructure):
    username = StringValue()
    password = StringValue()
    age = IntegerValue()

我暗示这是一个数据结构,其中首先是带有用户名的字符串,后跟带有密码的字符串,最后是用户的年龄作为整数.

如果你熟悉Python,你就会知道上面的类User是一个继承自类型的对象.就像Python中的大多数其他对象一样,它会有__dict__.这里存在我的问题.这个__dict__是一个哈希映射,因此__dict__中类属性的顺序与它们的定义顺序无关.

有什么方法可以找出实际的定义顺序吗?在我采用一种我能想到的不那么理智的方法之前,我在这里问…

哦,只是为了清楚,我想要的是一种方法来解决上述定义:[‘username’,’password’,’age’]

解决方法

这在Python中根本不受支持. Django使用元类来处理它.看到这个问题:
How does Django Know the Order to Render Form Fields?

(摘要:查看django.forms.forms.DeclarativeFieldsMetaclass,django.forms.forms.get_declared_fields以及如何在django.forms.fields.Field中使用creation_counter.)

dawei

【声明】:淮南站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。