代码之家  ›  专栏  ›  技术社区  ›  yanchenko

“%s”%“somestring”

  •  5
  • yanchenko  · 技术社区  · 14 年前

    以下是几个例子 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 回复  |  直到 14 年前
        1
  •  3
  •   Nathan Borror    14 年前

    这只是我的一个习惯。在这些情况下,这是不必要的。

        2
  •  1
  •   user25148    14 年前

    乍一看,它看起来不明智,但它确实有好处,强制结果是一个字符串(或unicode字符串),而不是从以前可能是什么。做同样事情的另一种方法可能是打电话 str 在格式参数(或Unicode)上。

        3
  •  1
  •   Wogan    14 年前

    你最好问问 Nathan Borror ,作者。这可能只是个人风格。

    不过,Django在某些情况下确实对字符串使用代理对象,因此可能会强制它们使用“实际”字符串。我相信这些代理是为了i18n/l10n的目的(不要引用我的话,也可能是为了避免数据库查找,直到需要,或其他一些原因)。

        4
  •  0
  •   Antony Hatchkins Alexander Hamilton    14 年前

    也许作者习惯于严格地输入语言,但他在Python中遗漏了它,这是他使Python比实际更严格地输入的方法。

    此处-仅为 读者 因为如果一切都按预期工作,对 蟒蛇 本身。

        5
  •  0
  •   Eric O. Lebigot    14 年前

    另一个想法:也许这是在考虑将来可能实现的情况下完成的?self.title和request.get[_]当前已经是所需的类型,但实现细节可能在将来更改,并且它们可能不再是Unicode字符串或字符串。

    现在,我将使用str()和unicode(),尽管_