python – Django:使用对象作为字典键是否合理?

前端之家收集整理的这篇文章主要介绍了python – Django:使用对象作为字典键是否合理?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
django中使用对象作为字典的键是否合理?我这样做了,它的确有效.但我想知道这是不是最好的做法,或者是否会造成我现在还没有预见到的困难.

我正在研究一个处理教育标准的项目.我的字典结构与{Subject:[Standards]}一致.主题的模型看起来像:

class Subject(models.Model):
  subject = models.CharField(max_length=255,unique=True)

  def __unicode__(self):
    return self.subject

是否可以使用此模型中的对象作为我的词典的键,或者我应该使用字符串表示,例如Subject.subject?

如果是这样,unicode方法会影响这个吗?当我尝试使用Subject.subject作为键时,我得到的内容类似于{u’Math’:[< Subject:学生可以执行计算.>]}使用对象作为键,它看起来像{< Subject:Math> :[<标准:学生可以执行计算.>]}

这是我昨天提到的关于using None as a dictionary key的问题的后续跟进.

解决方法

可变对象不应该真正用作字典键.也就是说,这是有效的,因为基础模型类根据模型的主键定义__hash__,这不太可能改变.但我更愿意直接使用pk作为关键.

猜你在找的Python相关文章