'%s'%'somestring'

时间:2010-01-15 03:45:29

标签: python django

以下是一些取自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']

这种字符串格式的重点是什么?

5 个答案:

答案 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(),但是......