使用python类变量作为dict键是一种好的做法吗?
我想知道如果我在字典中使用类变量作为键,这算是一种好的做法吗? 例如,这是peewee中的对象模型使用python类变量作为dict键是一种好的做法吗?,python,dictionary,peewee,class-variables,Python,Dictionary,Peewee,Class Variables,我想知道如果我在字典中使用类变量作为键,这算是一种好的做法吗? 例如,这是peewee中的对象模型 class Abc: name = CharField() age = IntegerField() 然后我像这样为它声明一个配置dict conf = {Abc.name: Config(listable=False, format_on_edit=True), Abc.age: Config()} 我不想使用像name、age这样的字符串作为dict键,因为我害怕输入错误,
class Abc:
name = CharField()
age = IntegerField()
然后我像这样为它声明一个配置dict
conf = {Abc.name: Config(listable=False, format_on_edit=True), Abc.age: Config()}
我不想使用像name、age这样的字符串作为dict键,因为我害怕输入错误,并且希望确保Object/Model字段有效
我看到Sqlalchemy或Peewee正在使用wherebc.name='abc'或filterUser.age==25这样的条件,而不是像Go或PHP中的许多其他ORM那样使用where'name'、'abc',因为它们没有类变量
这对防止打字错误很有好处。
我尝试过hashAbc.name,它可以工作,那么类变量是否可以作为dict键使用是不可变的?您可以安全地使用它们。Peewee将声明为模型属性的字段实例替换为特殊的描述符对象,然后这些描述符对象将公开可散列的底层字段实例 例如,在执行插入或更新时,可以使用字段作为键指定数据:
User.insert({User.username: 'charlie'}).execute()
你听说了吗https://docs.python.org/3/library/enum.html ? 这也是django?@DeveshKumarSingh我在其他上下文中使用enum,但这是关于模型字段的,许多字段在一个模型对象中定义,它们不是enum类型,配置dict是针对模型对象的。如果我将它们的字段名重新声明为枚举类型,这是没有用的。这不是问题,那么类变量是否作为dict键使用是不可变的?你在问什么?注意,您没有使用类变量作为键,变量不能是键,对象是键,并且在创建dict作为键时,您正在使用类变量引用的对象。如果这就是你要问的。@juanpa.arrivillaga是的,那么你还没有回答这个问题?我不太明白你在问什么