加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

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

发布时间:2020-12-16 23:32:54 所属栏目:Python 来源:网络整理
导读:我想定义应该代表数据结构的轻量级类.与许多数据结构的情况一样,数据的顺序很重要.所以,如果我继续定义: class User(DataStructure): username = StringValue() password = StringValue() age = IntegerValue() 我暗示这是一个数据结构,其中首先是带有用户
我想定义应该代表数据结构的轻量级类.与许多数据结构的情况一样,数据的顺序很重要.所以,如果我继续定义:
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.)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读