以下是一些取自django-basic-apps的例子:
# self.title is a unicode string already
def __unicode__(self):
return u'%s' % self.title
# 'q' is a string
search_term = '%s' % request.GET['q']
这种字符串格式的重点是什么?
答案 0 :(得分:3)
这只是我的习惯。在这些情况下,没有必要。
答案 1 :(得分:1)
乍一看,它看起来并不合理,但它的确带来了将结果强制为字符串(或unicode字符串)的好处,而不是之前的结果。另一种做同样事情的方法可能是在格式参数(或unicode)上调用str
。
答案 2 :(得分:1)
你最好不要问作者Nathan Borror。它可能只是一种个人风格。
Django在某些情况下确实使用代理对象作为字符串,因此可能强制它们为“实际”字符串。我相信这些代理用于i18n / l10n目的(不要引用我的话,也可以在需要之前避免数据库查找,或者其他一些原因)。
答案 3 :(得分:0)
也许作者习惯于严格键入语言,并且他在python中错过了它,这是他使python更加严格打字的方式。
这里 - 使输入/输出参数的类型仅为 reader 清除,因为提供的所有参数都按预期工作,它对 python 本身没用。 / p>
答案 4 :(得分:0)
另一个想法:也许这可以在未来可能实现的情况下完成? self.title和request.GET [...]目前已经是所需的类型,但实现细节将来可能会改变,并且它们可能会停止成为unicode字符串或字符串。
现在,我会使用str()和unicode(),但是......