gpt4 book ai didi

python - Django:更多 pythonic __unicode__

转载 作者:太空狗 更新时间:2023-10-29 20:23:06 24 4
gpt4 key购买 nike

我所有的 django 模型都有 unicode 函数,目前这些往往是这样写的:

def __unicode__(self):
return u'Unit: %s -- %s * %f' % (self.name, self.base.name, self.mul)

但是,像 Pythonista 一样编码,位于 http://python.net/~goodger/projects/pycon/2007/idiomatic/handout.html#string-formatting指出 self.__dict__ 是一个字典,因此上面的内容可以简化为:

def __unicode__(self):
return u'Unit: %(name)s -- %(base.name)s * %(mul)f' % self.__dict__

这有效,除了“base.name”,因为 python 试图查找 self.__dict__['base.name'] 但失败了,而 self.base.name 有效。

是否有一种优雅的方式来完成这项工作,即使您需要遵循外键关系?

最佳答案

% 字符串格式不支持属性访问,但是 format (自 2.6 起):

def __unicode__(self):
return u'Unit: {name:s} -- {base.name:s} * {mul:f}'.format(**self.__dict__)

关于python - Django:更多 pythonic __unicode__,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13305379/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com